SDK для PHP
PHP 7.4+Добавь криптоплатежи в своё PHP-приложение через Composer.
composer require whollycrypto/php-sdkНАЧАЛО РАБОТЫ
Установи систему, принимай платежи и обслуживай свой сервер.
Используй новый Linux VPS с root-доступом, а не сервер с уже работающим сайтом или базой данных. Docker, компилятор и узлы блокчейнов не нужны.
| VPS | Минимум Небольшая нагрузка | Рекомендуется |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB | 4 GB |
| SSD | 20 GB | 60 GB |
Минимальная конфигурация - отправная точка для небольшой нагрузки на минимальных образах Ubuntu/Debian, а не гарантия производительности. Указанный объём диска включает Linux; до установки оставь минимум 3 GiB свободного места и дополнительное место для обновлений, истории и резервных копий.
Для нативного установщика нужны x86-64, systemd 247+ и Python 3.9+. ARM64 и Alpine/OpenRC не поддерживаются.
Выбирай версию, которую поддерживает её поставщик. Более высокие требования ОС имеют приоритет: openSUSE Leap 16 требует более 40 GB дискового пространства.
Для большего числа сетей и одновременных счетов может потребоваться больше CPU и RAM. Более мощный VPS не отменяет квоты RPC. Процессы установки покрыты автоматическими тестами; полное тестирование на новых VPS ещё не завершено для всех дистрибутивов.
Направь эти стандартные имена хостов на свой VPS или выбери собственные:
merchant.example.com: консольpay.example.com: страница оплатыapi.example.com: APIВо время установки используй DNS-записи без прокси. Открой TCP-порты 80/443 в обоих межсетевых экранах и сохрани доступ по SSH. Никогда не открывай наружу PostgreSQL или приложение на портах 5432/8080.
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh)Установщик проверяет загрузки и настраивает PostgreSQL, Nginx, HTTPS и службы. Предпочитаешь контейнеры? См. необязательную установку через Docker.
Изучить установщик. Добавь --check к команде, чтобы проверить совместимость без установки, или --help для просмотра параметров.
Продолжи с сохранённого этапа без замены ключей и настроек:
bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --resumeДополнительные базовые домены могут использовать те же имена служб. Все записи IPv6 тоже должны указывать на этот VPS. Включай прокси Cloudflare только после проверки домена.
QR-коды запрашивают всю оставшуюся сумму. Допуск позволяет принять только недоплату; требования к подтверждениям сохраняются.
Новые расчётные суммы для распознанных стейблкоинов округляются вверх: 1.321 USDC → 1.33 USDC, даже при нулевом допуске. Минимум: 0.01 токена.
Существующие счета, балансы и остатки частичных платежей сохраняют точные значения. Остальные и пользовательские токены сохраняют обычную точность.
При регистрации администратора автоматически создаётся кредитный аккаунт с твоим email и однократно начисляется приветственный кредит в эквиваленте 10 USD . Код активации не нужен.
Создание счёта. Незавершённая активация повторяется автоматически; повторное подключение никогда не начисляет кредит заново.
Твои данные Basic Auth сохранены в /root/whollycrypto/config/setup-credentials.txt. Они отличаются от email и пароля для консоли.
Новые проекты наследуют системные настройки валюты и часового пояса по умолчанию; магазины используют валюту проекта. Часовые пояса существующих аккаунтов настраиваются отдельно в разделе Настройки → Аккаунт.
whollycrypto welcome показывает URL твоей консоли.
В новых установках начиная с 7.0.0 режим выбирается при настройке первого администратора. Это необратимо; для смены режима потребуется новая установка. Установки до версии 7 остаются в режиме продавца, даже без администратора.
Продавец: управляй своими проектами и магазинами. Оператор: размещай независимых продавцов в одной установке и взимай собственную предоплаченную комиссию за обработку. Твой собственный бизнес включён без внутренней комиссии оператора.
При настройке оператора потребуется четвёртый адрес, например operator.example.com, и отдельные имя пользователя и пароль Basic Auth. Выбери название, направь DNS на VPS, проверь DNS и активируй HTTPS. Панель открывается прямо по этому адресу. Адреса консоли продавца, страницы оплаты и API остаются отдельными.
Используй новые данные Basic Auth оператора, затем email и пароль администратора. Basic Auth продавца не меняется. Настройку можно продолжить после ошибок DNS или сертификата. Операторы, обновляющиеся с 7.0.0, тоже проходят этот шаг; действующие адреса остаются доступны.
При ставке 3% счёт на 100 EUR расходует 3 EUR кредита продавца. Если валюта его кредита отличается, вместе с комиссией сохраняется фиатный курс на момент создания.
Оператор отдельно оплачивает обычную комиссию установки Wholly Crypto. Средства клиентов не разделяются в блокчейне. Покупки кредитов не облагаются повторной комиссией.
Пополнение зачисляется только после автоматически проверенного расчёта. Открытие страницы оплаты или ручное принятие счёта не зачисляет его. Сторнирования создают записи в журнале; повторно появившееся сторнированное пополнение требует проверки оператором.
Недостаток кредита размещённого продавца приостанавливает IPN, вебхуки, sweep и создание новых проектов и магазинов. Существующие счета клиентов и приём средств продолжают работать. Недостаток кредита установки может приостановить автоматизацию у всех размещённых продавцов. Отключение продавца также блокирует вход и новые счета, но старые платежи продолжают отслеживаться.
Это изоляция на уровне приложения, а не отдельный VPS для каждого продавца. Продавцы не могут получать доступ к чужим проектам, кошелькам, API-ключам, биржам или кредитам. Администратор сервера может получить доступ к ключам размещённых горячих кошельков. Сообщи об этом продавцам до подключения; используй надёжный хостинг, независимые резервные копии и достаточные ресурсы для общей нагрузки.
Доступно в режиме оператора с 7.1.0.
Начиная с 7.2.0, Кошельки управляет полученными балансами, адресами и резервными копиями; Sweep управляет отправкой средств и автоматическими правилами. Оставляй ETH для комиссий токенов. Пополнения продавцов отслеживает их покупки. Кредиты в шапке отдельно оплачивают комиссии установки. Мой бизнес открывает твою консоль в новой вкладке.
Открой Финансы для просмотра заработанных комиссий, проверенных списаний установки, оценочной маржи и текущих кредитов продавцов. Фильтруй по дате, продавцу или валюте отчёта; экспортируй CSV.
Отчёты группируют счета по первому расчёту и учитывают последние сторнирования комиссий. Предоплаченные остатки не являются выручкой. Начисления собственного бизнеса учитываются отдельно. Незавершённые списания или отсутствующие курсы делают соответствующую маржу недоступной. Конвертированные суммы используют текущие кэшированные фиатные курсы; газ и эксплуатационные расходы не включены.
Добавить продавца создаёт приглашение. Начиная с 7.3.0 можно выбрать бесплатный начальный кредит в кредитной валюте продавца; ноль допустим. Это не пополняет баланс оператора. Отправить приглашение по email включено по умолчанию.
Настрой SMTP-провайдера в разделе Настройки → Письма с приглашениями заранее, используя TLS или STARTTLS. Проверка подключения не отправляет письма. Или отключи отправку email и передай ссылку приватно. При сбое отправки аккаунт и кредит сохраняются; не создавай продавца повторно.
Для новой ссылки или сброса пароля открой Продавцы → Управление → Учётные записи пользователей. Приём письма SMTP-сервером не гарантирует доставку во входящие. Передавай Basic Auth продавца отдельно, никогда не передавай данные оператора.
Приглашения действуют 48 часов, ссылки сброса - один час. Каждая ссылка одноразовая. Заменить или отозвать ссылку можно на том же экране. Сброс завершает текущие сеансы, но сохраняет включённую 2FA. Basic Auth продавца по-прежнему требуется.
Автоматизируй управление размещёнными продавцами с SDK 2.6.0 и Wholly Crypto 7.4.0+. Включи Оператор → Настройки → API оператора, затем создай ключ с ограниченными разрешениями для серверной стороны.
Создавай аккаунты сразу с паролем или отправляй приглашения. Управляй пользователями, проектами, магазинами, комиссиями и локальными предоплаченными кредитами; читай отчёты и подписывайся на подписанные события жизненного цикла. Согласие на хранение средств при первом входе, 2FA и изоляция клиентов сохраняются.
Для каждой записи нужен сохранённый ключ идемпотентности. Выдача кредитов - локальная корректировка аккаунта, а не пополнение установки. Секреты кошельков, отправка средств и настройка сервера не входят в этот API.
Используй api.your-domain.com/v1/operator. Храни ключи оператора на своём сервере, никогда не передавай их в браузер или размещённому продавцу.
Справочник API оператора и разрешения → · SDK для PHP, Python и Node с примерами →
Настройки → Токены сначала загружает 250 токенов, затем остальной каталог.
Проект → Кошельки → Создать резервную копию всех экспортирует TXT или автономный HTML с поиском и QR-кодами. Оба формата раскрывают ключи и фразы восстановления. Храни приватную копию вне сервера; никогда не передавай и не загружай её в интернет.
Root может получить доступ к ключам. Руководства по восстановлению кошельков объясняют адреса счетов, нативный газ и внешние резервные копии Monero/Lightning.
Настройки → Адресная книга: сохрани сеть и адрес. Нативные монеты и сопоставленные токены CoinGecko появляются автоматически. Только чтение, управление администратором; приём на странице оплаты не меняется.
Чтение токенов охватывает 22 сети. Приватные балансы и надстройки Bitcoin/CashTokens/Kaspa требуют отдельного доступа или индексаторов. При сбое чтения показываются ошибки, а не нули.
Собирай остатки по счетам в другой кошелёк через ручную отправку или автоматический sweep. Для перевода токенов также нужна нативная монета сети для оплаты комиссий.
Цена недоступна относится к курсам, а не к балансам.
Сеть и число десятичных знаков проверяются. Цены проекта не меняют существующие расчётные суммы. Само совпадение в каталоге не включает приём на странице оплаты.
DEX Screener требует пул с точным совпадением контракта, ликвидность $10,000 и сделку за последний час. Курсы обновляются каждую минуту; ошибки получения или курсы старше пяти минут блокируют новые расчёты.
Ценами DEX можно манипулировать; проверки не являются аудитом. Используй надёжные стандартные ERC-20 или классические SPL-токены. Token-2022 и расширения не поддерживаются. Если подходящего пула нет, используй фиксированную цену.
Настройки → Система → Региональные настройки по умолчанию задаёт валюту и часовой пояс новых проектов и часовой пояс новых аккаунтов. Существующие настройки и кредиты не меняются; валюту панели по-прежнему можно переопределить.
Личный часовой пояс: Настройки → Аккаунт → Изменить пользователя.
Используй Способы оплаты → Выбрать для этого счёта для ограничения принимаемых сетей и токенов. Все способы оплаты магазина сохраняет настройки по умолчанию.
Перед запуском проверь небольшой платёж каждым способом. Проверяй счёт перед выполнением заказа: URL возврата не доказывает оплату.
В интеграциях проверяй подписанные IPN и вебхуки и подтверждай статус через API счетов. Обрабатывай дубликаты как одно и то же событие.
API: фильтруй payment_methods по chain_slug и asset_tickers. Неактивные варианты игнорируются; если совпадений нет, используются настройки магазина. Указание только сети включает все активные активы. Для одинаковых тикеров нужны ID активов. Кошельки и курсы по-прежнему необходимы.
Сканер недоступен? Счета сохраняют настроенные способы оплаты, пока обнаружение ожидает восстановления. Проверь поддерживаемые API в подключениях к сетям; исправность провайдера не означает совместимость со сканером. По умолчанию: два независимых провайдера.
Кошельки и курсы по-прежнему нужны. Сервисы Monero/Lightning должны выдавать платёжные запросы.
Ошибки API/MCP включают error.details.payment_methods. SDK 2.4.0 добавляет безопасные пояснения: PHP getPaymentMethodIssues(), Python payment_method_issues, Node paymentMethodIssues. Справочник ошибок →
Расчётные криптосуммы округляются вверх и включают спред магазина. Счёт с ценой в фиатной валюте не превращает полученную криптовалюту в банковский баланс.
При нуле подтверждений расчёт завершается при обнаружении, без защиты сетевых подтверждений. Нативные EVM-платежи обнаруживаются как прямые переводы. Проверяй необычные или неопределённые платежи в разделе Требует внимания.
Проверь Подключения к сетям для совместимых API, полной истории и независимых провайдеров. Чтение пропущенной истории через обычный узел занимает время. Все API приёма →
Платежи, балансы и обслуживание совместно используют квоты провайдеров. При отсутствии активности проверки замедляются. Старые счета сохраняют мониторинг поздних платежей и реорганизаций, вплоть до ежечасных проверок после обработки истории. Доступные WSS-сигналы дополняют HTTP-сканирование. Закрытие страницы оплаты никогда не останавливает обнаружение. Публичные узлы тоже имеют ограничения; Wholly Crypto не управляет узлами.
По умолчанию заблокированы. Включи Магазины → Счёт → Разрешить счета с нулевой суммой для нулевых итоговых сумм вручную или через API. Такие счета завершаются сразу, без платежа, адреса получения, транзакции и комиссии за обработку.
Магазин → Страница оплаты: цвета, логотипы, способы оплаты, ссылки, размеры шрифтов Intro/Outro и видимость названий проекта и магазина. Новые магазины наследуют оформление магазина по умолчанию. Изменения сохраняются автоматически.
Предпросмотр не принимает платежи. Пользовательские HTML/CSS/JavaScript не поддерживаются.
IPN отправляет каждое событие счёта на URL магазина или в указанный для счёта ipn_url. Вебхуки отправляют выбранные события. Оба механизма отправляют один и тот же JSON-снимок методом POST.
Когда выполнять заказ? Для обработки по событиям используй event_type = invoice.settled с status = settled. Проверь текущее состояние счёта и свой заказ, затем выполни его один раз. payment.received само по себе недостаточно.
status - состояние счёта на момент создания события; event_type показывает, что произошло.
payment.received + processing, затем invoice.settled + settled.payment.received и invoice.settled оба содержат settled.Оба сценария возможны и в других сетях. Это разные события, а не обязательно два платежа. У них может совпадать sequence но отличаться значения event_id . Порядок доставки не гарантирован; не требуй, чтобы processing приходило первым.
| Статус счёта | Значение |
|---|---|
new | Ожидание оплаты |
processing | Частичная оплата или ожидание окончательности |
settled | Принят по правилам счёта или вручную |
expired | Срок истёк; мониторинг поздних платежей может продолжаться |
invalid | Платёж требует проверки или был отклонён |
cancelled | Отменён, без возврата средств |
События: invoice.created, payment.received, invoice.processing, invoice.settled, invoice.expired, invoice.invalid, invoice.cancelled. Полная таблица событий и правила исключений →
amount_status: none, partial, paid, overpaid. paid учитывает допуск, но не окончательность. timing_status: on_time или late. resolution: automatic, manually_settled или manually_invalidated. Применяй свою политику исключений, когда requires_review имеет значение true.
invoice_id соответствует ответу API. amount, currency и order_id описывают исходный заказ. payment_info добавляет переводы, точные криптосуммы, зафиксированные курс/спред/допуск и справочные курсы. Данные клиентов и метаданные приватны.
paid_chain, paid_asset, paid_payment_method_id, paid_asset_amount, paid_asset_amount_received и settlement_exchange_rate суммируют расчёт. Они остаются зафиксированными; отсутствующие доказательства или история остаются null. Для более поздних поступлений используй payment_info или API платежей.
Используй десятичные строки. Никогда не объединяй разные активы и не считай неподтверждённые средства отсутствующими. Обрабатывай исключения явно; само предупреждение никогда не разрешает выполнение заказа или возврат. Проверенные внутренние пополнения газа не являются платежами клиентов и не вызывают payment.received.
Отдельные секреты подписи: Магазин → IPN подписывает доставку IPN, включая пользовательское поле счёта ipn_url. У каждого эндпоинта в разделе Магазин → Вебхуки есть свой секрет, который показывается при создании или ротации.
Оба используют Wholly-Signature и один проверяющий механизм SDK, но требуют соответствующий секрет, а не API-ключ. Ротация секрета IPN не меняет секреты вебхуков.
Проверь исходное тело, временную метку и принадлежность проекту/магазину. Надёжно сохрани данные, затем верни HTTP 2xx. Обработчик проверяет текущий счёт через настроенный API-хост и выполняет заказ один раз в транзакции базы данных. Заголовки не подписаны; используй идентификационные данные из подписанного тела версии 2.
По событиям: устраняй дубликаты подписанного event_id, затем фильтруй invoice.settled. SDK по состоянию: объединяй по проекту + invoice_id + sequence, затем проверяй состояние независимо от типа события. Не добавляй фильтр событий после такого объединения. Оба подхода требуют отдельной защиты от дублей на уровне заказа.
Повторы сохраняют исходное тело и ID события. Старые ревизии не должны перезаписывать новые. IPN делает до восьми попыток; повторы вебхуков необязательны. Низкий кредит приостанавливает доставку, а не платежи.
Магазин → IPN / Вебхуки → История → Подробности показывает сохранённое тело и результат. Полезные нагрузки удаляются по истечении 90 дней. Повторная отправка не доказывает завершение расчёта.
Полная полезная нагрузка, таблица событий и примеры обработчика →
Отправляй поддерживаемые активы на Kraken, Binance или Coinbase. Оставь монету или конвертируй зачисленные депозиты. Фиат остаётся на бирже.
Минимальные суммы депозита применяются к каждой транзакции, а не ко всему sweep. Депозиты ниже минимума останавливают план. Сначала объедини небольшие остатки в собственном кошельке; потребуются дополнительные сетевые комиссии.
Рынки обновляются каждые две минуты. Конвертация доступна только для сопоставленных и зачисленных депозитов; устаревшие данные о рынках блокируют новые ордера. На бирже остаётся резерв 1% исходного актива на комиссии и округление. Он не связан с балансом оплаты обработки.
Минимальный остаток сохраняет монеты или токены в пределах всего проекта после автоматического сбора. Это не порог запуска: ноль означает отсутствие резерва. Комиссии берутся из суммы сверх остатка. Ручные переводы не меняются.
Возобновляй переводы с неопределённым результатом, не создавай замену. Кошельки остаются зарезервированными до подтверждения или истечения неиспользованной котировки. Крупный сбор выполняется партиями.
Действуют условия хранения средств на бирже, KYC, региональные ограничения и комиссии. Вывода на банковский счёт и торговли с плечом нет. При низком балансе оплаты новые конвертации приостанавливаются; уже отправленные ордера продолжают сверяться.
Ты продолжаешь получать платежи, даже когда баланс оплаты исчерпан. Счета, платёжные страницы и отслеживание платежей существующих магазинов продолжают работать. Отсутствие проверенного подключения для оплаты сервиса или блокировка аккаунта - отдельные ситуации, которые могут помешать создавать новые счета.
| Продолжает работать | Приостановлено без доступного баланса |
|---|---|
| Счета, платёжные страницы и подтверждения | IPN и вебхуки, включая повторные попытки |
| Кошельки, балансы и резервные копии | Sweep: отправка, газ, возвраты и новые конвертации на бирже |
| Отчёты, API для чтения и существующие настройки | Создание проектов и магазинов |
| Проверка обновлений и восстановление прерванного обновления | Установка новых версий |
Пополни баланс через значок баланса. После подтверждённого пополнения включённая автоматизация возобновится, в том числе правила сбора с отправкой средств. Отключи правила, которые не должны возобновляться.
Открой Автопополнение после вкладки «Запросы». Выбери кошелёк для приёма с резервной копией, порог, сумму покупки, суточный лимит и предел сетевой комиссии. Подтверди разрешение и сохрани. По умолчанию функция выключена.
Можно использовать BTC, ETH или USDC/USDT в Ethereum, если они доступны. На адресах отправки токенов нужен ETH; это правило не пополняет недостающий газ. Операторы используют отдельные кошельки для приёма, а размещённые у них продавцы платят своему оператору.
Разрешённое пополнение может выполняться, даже если низкий баланс приостановил Sweep. Зачисление подтверждает только принимающий сервис. Одновременно выполняется одна автоматическая покупка. Отключение останавливает ещё не отправленные действия, но не отправленные транзакции.
В разделе «Автопополнение» нажми Проверить платёж. Возобнови тот же действующий платёж либо закрой перевод Ethereum с подтверждённым сбоем и приостанови правило. Ожидающие платежи и платежи с неясным результатом остаются заблокированными, чтобы избежать повторной отправки. Истёкшая котировка не доказывает сбой.
Стандартный 1% рассчитывается от исходной суммы окончательно оплаченного счёта в фиатной валюте. Криптоплатёж покупателя не делится.
Комиссии продолжают начисляться, и баланс может стать отрицательным. Погаси задолженность и пополни доступный баланс выше допустимого порога своего аккаунта. При исправном соединении изменения обычно отображаются за 10–15 секунд.
Для установки обновлений нужен подтверждённый баланс выше нуля, даже если для автоматизации действует допустимый отрицательный остаток. Пополнение никогда не устанавливает обновления автоматически.
Приостановленные уведомления не расходуют попытки. Сохранённые доставки возобновляются, но обычный срок их действия остаётся. Пропущенные события сверяй через API счетов.
Если оператор отключил комиссию за обработку, новые комиссии и ограничения по балансу не применяются. Старые списания остаются в истории. Неподключённая установка позволяет настраивать проекты и магазины, но для выставления счетов нужно проверенное подключение оплаты сервиса. Уже выставленные счета продолжают отслеживаться.
Графики выручки и фильтры находятся над вкладками: Проекты и магазины, Счета, Кошельки и Сбор средств. Поиск находится ниже. В разделе «Проекты и магазины» есть экспорт CSV. Произвольный период может охватывать до 366 дней. Кошельки используют кешированные балансы.
Добровольно включаемый доступ в рамках проекта по адресу api.example.com/mcp. Читай сведения о платежах или подтверждай создание счетов. Настройка MCP и права доступа →
Используй официальные SDK для создания счетов, проверки платежей и подписей IPN/вебхуков.
Добавь криптоплатежи в своё PHP-приложение через Composer.
composer require whollycrypto/php-sdkПодключи Python-приложение или серверную часть без зависимостей для выполнения.
python -m pip install whollycryptoJavaScript или TypeScript: один пакет npm со встроенными типами.
npm install whollycryptoИспользуй API-домен своей установки и храни API-ключи только на сервере. Все SDK распространяются по лицензии MIT.
Переводи полученные средства по выбранному адресу. Правила и история находятся в разделе Проект → Sweep.
Отправляй нативные монеты в 29 сетях; Monero остаётся доступным только для просмотра. Токены: проверенные ERC-20 и классические SPL. При ручной отправке и автоматическом сборе действуют одинаковые меры защиты.
Помимо BTC, EVM, SOL и TRX доступны ещё 18 адаптеров нативных монет. Нужен провайдер с поддержкой отправки транзакций. ZEC - только прозрачные адреса; ADA сохраняет выходы с токенами; DOT использует Asset Hub; HBAR нужен relay. Для исходящих переводов с memo/tag/comment используй внешний кошелёк.
После подтверждения пополнение газа, ожидание подтверждений и отправка токенов продолжаются в фоне. Следи за разделом История переводов, даже после закрытия окна. Отправка в сеть ещё не означает подтверждение.
Оставить ETH в кошельке проекта: 0 означает отсутствие дополнительного резерва, а не расход всего ETH. 0.005 сохраняет не менее 0.005 ETH на потом, поэтому для этого перевода нужны дополнительные средства. Сохранённые автоматические правила не меняются.
Суточный лимит ограничивает нативную монету, выделяемую на газ по каждому правилу токена за скользящие 24 часа. Для редких переводов можно начать с 1 €, но это не гарантированная стоимость и не ежедневное списание. Транзакции пополнения тоже требуют комиссии. Максимальная сетевая комиссия, % может ограничивать суммарные комиссии пополнения и перевода.
Проверки выполняются автоматически. Газ получают только подходящие адреса с токенами, но не пустые. Адрес с недостаточным газом и балансом ниже порога сбора ждёт. Подробнее о лимитах газа →
Отправка отключена? Проверь whollycrypto transfers status. Проверь все включённые правила перед whollycrypto transfers enable: настройка действует на весь сервер и может сразу запустить сохранённые правила. Остановка следующих шагов не отменит уже отправленные транзакции.
Настройки → Система: выбери Управление или Добавить домен. Сохрани, проверь DNS, активируй. Для неизменённых хостов проверки DNS/SSL пропускаются.
Магазин → Основное: выбери активные хосты merchant/pay/API. Ссылки выбираются по приоритету: магазин → магазин по умолчанию → система; для удалённых имён используется замена. Хосты SDK настраиваются отдельно. Повторные подписанные уведомления сохраняют исходные ссылки.
HTTPS настраивается автоматически. После установки можно включать и выключать Cloudflare; Let's Encrypt продолжает работать.
/.well-known/acme-challenge/ на порту 80 без перенаправлений и проверок для продления сертификатов.Проверки запрашивают авторитетные DNS-серверы и проверяют исходный сервер: напрямую или через Cloudflare. У посетителей могут кешироваться старые DNS-записи.
С версии 5.6.2 сохранение и удаление в консоли используют POST; исключение для «Not GET or POST» не нужно. Авторизация и защита CSRF сохраняются. На api.*разреши методы, указанные в документации публичного API.
Настрой 2FA в разделе Настройки → Аккаунт. Пользователи с доступом только к проектам открывают Моя безопасность в подвале страницы. Подтверди пароль, отсканируй QR-код или ключ TOTP и введи шестизначный код.
Попробуй Verifyr Authenticator для iOS или Androidили другое стандартное TOTP-приложение. Сохрани одноразовые коды восстановления отдельно от пароля. Не отключай защиту HTTP Basic.
Для замены кодов или отключения 2FA нужны пароль и код аутентификатора либо неиспользованный код восстановления. Другие сеансы завершаются. Синхронизируй время телефона и сервера; 2FA не защищает взломанный сервер.
Значок темы переключает Светлая → Приглушённая → Тёмная и запоминает выбор в этом браузере. Темы платёжных страниц магазинов настраиваются отдельно.
merchant.* или api.* хоста. Текущий IP подключения к консоли должен оставаться разрешённым.pay.* открытым: покупателям нужно платить из любой точки мира.При желании добавь правила доступа Cloudflare. Сделай исключение для проверок продления HTTPS; не ставь интерактивные проверки входа на API и платёжные страницы. Сам по себе режим прокси не ограничивает доступ по IP.
Потерял доступ? Выполни whollycrypto access-reset --domain merchant.example.com через SSH. В течение пяти секунд откроется только этот хост; авторизация аккаунта останется включённой.
whollycrypto ssl
whollycrypto ssl --fixПервая команда проверяет активные сертификаты. --fix восстанавливает служебные файлы TLS и продлевает отсутствующие или истекающие сертификаты. Nginx должен работать; порты 80/443 должны быть открыты.
Выполни whollycrypto ssl --domain merchant.example.com --reissue для принудительной замены. Действуют лимиты выдачи. Если Cloudflare блокирует HTTP-проверку, временно включи DNS-only. Кошельки, авторизация и домены не меняются.
Для решений нужна причина. Возврат требует отдельного подтверждённого перевода; смена статуса счёта никогда не отправляет деньги.
Прочитай описание изменений, затем открой Настройки → Система → Обновления программы или используй CLI. Обновления проверяют подписи, создают резервные копии и проверяют работоспособность. Во время установки платёжные страницы ненадолго приостанавливаются.
whollycrypto update --check
whollycrypto updateОбновление ждёт фоновые задачи до двух минут; платёжные страницы в это время работают. При превышении ожидания таймеры восстанавливаются.
Старый обновлятор не запускается? Выполни это один раз. Установленный ключ проверит вспомогательный скрипт.
bash <(curl -fsSL https://releases.whollycrypto.com/update_wholly.sh)Храни проверенные резервные копии вне сервера для PostgreSQL, конфигурации, ключей шифрования кошельков и экспортов кошельков. Локальные архивы восстановления не зашифрованы.
Восстанавливай согласованные копии базы данных и конфигурации вместе. Никогда не прерывай миграции и не запускай старые бинарные файлы с новой базой. Правила баланса оплаты продолжают действовать.
Установка и обновления автоматически пробуют официальное зеркало GitHub. Проверки подписи, контрольной суммы и баланса оплаты остаются обязательными.
Команды от root через SSH.
whollycrypto status
whollycrypto doctor
whollycrypto backup| Команда | Назначение |
|---|---|
whollycrypto version | Установленная версия. |
whollycrypto status | Состояние приложения и базы данных. |
whollycrypto logs | Последние 80 строк журнала приложения. |
whollycrypto restart | Перезапуск и проверка работоспособности. |
whollycrypto doctor | Проверки установки без изменений. |
whollycrypto doctor --fix | Исправление управляемых прав доступа и отсутствующей ссылки CLI. |
whollycrypto htaccess | Сброс входа Basic Auth. |
whollycrypto admin-reset | Сброс пароля администратора. |
whollycrypto 2fa-reset | Сброс аутентификатора одного аккаунта без изменения пароля. |
whollycrypto transfers statuswhollycrypto transfers enablewhollycrypto transfers disable | Проверка, включение или приостановка отправки для всех проектов. Включение перезапускает приложение и может сразу выполнить сохранённые правила; нужно подтверждение. Обновления сохраняют приостановку. |
whollycrypto ssl | Проверка HTTPS; добавь --fix для исправления. |
whollycrypto access-reset --domain HOST | Снятие IP-ограничений для одного хоста. |
whollycrypto update --check | Проверка подписанных обновлений. |
whollycrypto update | Резервная копия, обновление и перезапуск. |
whollycrypto backup | Архив с доступом только для root в /root/whollycrypto/backups/releases/. |
whollycrypto recover | Восстановление прерванного обслуживания или обновления при неизменной схеме базы. Никогда не восстанавливает базу данных автоматически. |
whollycrypto reset | Выбор одного проекта, всех бизнес-проектов или только исправления. |
whollycrypto uninstall --checkwhollycrypto uninstall | Предпросмотр и удаление нативной установки. База данных, ключи и копии сохраняются. |
whollycrypto welcome | Адрес консоли и ссылки. |
whollycrypto --help | Команды; добавь --help после команды, чтобы посмотреть её параметры. |
Проверки ничего не меняют и возвращают ненулевой код завершения, если требуется внимание. --fix исправляет только управляемые права доступа и отсутствующую ссылку CLI. Не меняет оплату сервиса, не удаляет данные и не перезапускает службы.
whollycrypto reset
# Preview without changing anything:
whollycrypto reset --scope business --check
whollycrypto reset --scope project --project YOUR_PROJECT_IDENTIFIER --checkВыбери один проект, все бизнес-проекты или только исправление. Сброс проектов навсегда удаляет выбранные проекты, магазины, записи кошельков и историю платежей. Исправление лишь проверяет и восстанавливает управляемые права доступа и ссылку CLI.
Сначала отключи выбранные проекты, заверши открытые платежи и переводы и выведи известные остатки кошельков. Аккаунты, домены, узлы, баланс оплаты, идентификатор оплаты и режим установки сохраняются. Кошельки приёма оператора и записи балансов размещённых продавцов защищены. Мастер начальной настройки не открывается заново.
Разрушающий сброс требует текстового подтверждения и создаёт проверенную копию восстановления перед удалением. Также храни копию кошельков вне сервера: старые адреса всё ещё могут получать средства, но удалённые проекты перестанут их отслеживать. Кешированные балансы не доказывают, что кошельки пусты.
whollycrypto uninstall --check
whollycrypto uninstallОстанавливает платёжные страницы, API и фоновые задачи; после копирования и текстового подтверждения удаляет файлы выполнения и управляемую серверную интеграцию. Незавершённые платежи или переводы блокируют удаление. Файлы перемещаются в копию восстановления, а не стираются.
База данных, конфигурация, ключи и копии остаются. Общие пакеты Nginx/PostgreSQL и сертификаты TLS не затрагиваются. Команда выводит способ офлайн-восстановления; не запускай новую установку поверх сохранённых данных.
Сброс и удаление предназначены для нативных установок на VPS, не для Docker или Umbrel. Для контейнеров используй команды копирования и остановки своей интеграции и сохраняй тома. Ни одна из разрушающих команд не принимает --yes.
whollycrypto htaccessВыбери пользователя, задай имя и пароль и подтверди. Это сбрасывает первый запрос входа в браузере, а не аккаунт консоли. Другие пользователи и API-ключи не меняются.
whollycrypto admin-resetВыбери администратора по email и подтверди новый пароль. Сеансы и блокировки входа аккаунта сбрасываются; ограничения по IP остаются.
Обычный сброс сохраняет 2FA. Если потеряны и аутентификатор, и коды восстановления, отдельно выполни whollycrypto admin-reset --email admin@example.com --reset-2fa. После входа настрой 2FA заново.
Нужна база данных, но не работающее приложение или старый пароль. Другие аккаунты, кошельки и права не меняются; отключённые аккаунты остаются отключёнными.
Потерял аутентификатор и коды восстановления? Выбери аккаунт от имени root.
whollycrypto 2fa-reset
# Or select the account directly:
whollycrypto 2fa-reset --email user@example.comУдаляет сеансы, аутентификатор и коды восстановления. Войди с текущим паролем и настрой 2FA заново. Права, кошельки и Basic Auth не меняются; отключённые аккаунты остаются отключёнными.
Нужна база данных, но не приложение или баланс оплаты. Неинтерактивный режим: --email и --yes.
Нажатие Enter создаёт пароль в /root/whollycrypto/config/credential-resets/: файл закрытый, незашифрованный, пароль действует после успешного завершения. Введённые вручную пароли не сохраняются.
whollycrypto htaccess --user admin --new-user operator
whollycrypto admin-reset --email admin@example.comБез терминала укажи существующий аккаунт и --generate или --password-file /root/private-password.txt, а также --yes. Файлы паролей должны принадлежать root и иметь права 600. Никогда не указывай пароли прямо в командах или переменных окружения.
--yes пропускает только подтверждение. Сначала заверши восстановление прерванного обновления; параллельные изменения аккаунта останавливают сброс.