RU
Биллинг хостинга

Криптоплатежи для FOSSBilling

Платёжный адаптер для FOSSBilling: клиенты оплачивают счета в USDT (TRC20, ERC20, BEP20) и других монетах через SnapEX Pay. Когда клиент выбирает SnapEX Pay в счёте, адаптер создаёт счёт SnapEX Pay и отправляет клиента на страницу оплаты. После подтверждения оплаты на IPN-адрес FOSSBilling приходит подписанный вебхук, клиенту зачисляются деньги и счёт отмечается оплаченным.

Скачать модуль

Бесплатно. Версия 1.1.0.

Что умеет модуль

  • Не нужно держать кошелёк, ноду или наблюдение за блокчейном: деньги приходят на баланс мерчанта SnapEX Pay.
  • Адаптер из одного файла, появляется в System → Payment gateways.
  • Вебхуки проверяются по HMAC-SHA256 с окном 5 минут, а перед зачислением счёт перечитывается из API SnapEX Pay.
  • Платёж проводится один раз: повторный вебхук не зачисляет деньги снова, проведение идёт под блокировкой в базе. Если сумма счёта изменилась после оплаты, автоматически ничего не зачисляется.
  • Переключатель Enable Test Mode в FOSSBilling создаёт тестовые счета SnapEX Pay без реальных денег; тестовые платежи не применяются, пока шлюз в боевом режиме.
  • Несколько сайтов FOSSBilling могут работать с одним аккаунтом SnapEX Pay; счета не в USD пересчитываются по фиксированному курсу или по курсам валют FOSSBilling.

Установка

  1. Скопируйте SnapexPay.php из архива в корень FOSSBilling так, чтобы получилось library/Payment/Adapter/SnapexPay/SnapexPay.php (регистр имён важен), и дайте веб-серверу право на чтение.
  2. В админке откройте System → Payment gateways → New payment gateway и установите SnapexPay.
  3. Откройте шлюз, вставьте API-ключ (права invoices.read, invoices.write) из кабинета SnapEX Pay, включите Enabled и Allow One Time Payments, сохраните.
  4. Скопируйте IPN Callback URL со страницы шлюза (https://<ваш-fossbilling>/ipn.php?gateway_id=<id>), добавьте его как вебхук в кабинете SnapEX Pay с событием invoice.paid и вставьте секрет whsec_… в Webhook secret.
  5. Включите Enable Test Mode, оплатите счёт и подтвердите тестовый платёж на странице SnapEX Pay — счёт должен стать Paid. Затем выключите тестовый режим.

Настройки

API keyКабинет SnapEX Pay → API keys, права invoices.read и invoices.write.
Webhook secretСекрет whsec_… вебхука. Неподписанные и неверно подписанные вебхуки отклоняются.
Network fee paid bymerchant — клиент платит сумму счёта. customer — комиссия сети добавляется сверху.
Payment window, minutes1–1440, по умолчанию 60.
USD per 1 unit of invoice currencyДля счетов в USD не нужен. Для других валют — фиксированный курс или пусто, тогда берутся курсы FOSSBilling (USD должен быть в System → Currencies).
Enable Test ModeПереключатель самого FOSSBilling: вкл. — тестовые счета SnapEX Pay, выкл. — боевые.

Вопросы

Какие версии FOSSBilling поддерживаются?

FOSSBilling 0.8.x и текущие сборки для разработчиков.

SnapexPay нет в списке New payment gateway.

Проверьте путь library/Payment/Adapter/SnapexPay/SnapexPay.php (регистр важен) относительно папки с ipn.php и что веб-сервер может прочитать файл.

Клиент заплатил, а счёт не оплачен.

Откройте Invoices → Transactions. Если транзакции нет — проверьте доставку вебхуков в кабинете SnapEX Pay и что в адресе есть ?gateway_id=. После исправления транзакцию можно провести заново из админки.

Транзакция с пометкой «partially paid», «already paid» или «total changed».

Такие платежи автоматически не зачисляются. Проверьте платёж в кабинете SnapEX Pay и зачислите деньги или отметьте счёт оплаченным вручную.

Можно подключить несколько сайтов FOSSBilling к одному аккаунту?

Да. Каждый сайт проводит только свои счета.

Готовы принимать крипту?

Создайте аккаунт мерчанта, получите API-ключ и подключите модуль. 1% с платежа, без абонентской платы.