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

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

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

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

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

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

  • Не нужно держать кошелёк, ноду или наблюдение за блокчейном: деньги приходят на баланс мерчанта SnapEX Pay.
  • Адаптер из одного файла, появляется в System → Payment gateways.
  • Вебхуки проверяются по HMAC-SHA256 с окном 5 минут, а перед зачислением счёт перечитывается из API SnapEX Pay.
  • Платёж проводится один раз: повторный вебхук не зачисляет деньги снова, проведение идёт под блокировкой в базе, если база её поддерживает. Если сумма счёта изменилась после оплаты, автоматически ничего не зачисляется.
  • Переключатель Enable Test Mode в FOSSBilling создаёт тестовые счета SnapEX Pay без реальных денег; тестовые платежи не применяются, пока шлюз в боевом режиме.
  • Каждый сайт FOSSBilling проводит только созданные им счета; счета не в 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 (Developers) и вставьте секрет 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 — комиссия SnapEX Pay и комиссия сети добавляются сверху.
Payment window, minutes1–1440, по умолчанию 60.
USD per 1 unit of invoice currencyДля счетов в USD не нужен. Для других валют — фиксированный курс или пусто, тогда берутся курсы FOSSBilling (USD должен быть в System → Currencies).
Enable Test ModeПереключатель самого FOSSBilling: вкл. — тестовые счета SnapEX Pay, выкл. — боевые.
Partner IDНеобязательно: Partner ID интегратора, который настроил модуль (реферальная программа SnapEX Pay). Оставьте пустым, если ставите сами.
API URLОставьте пустым.

Вопросы

Какие версии 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 к одному аккаунту?

Каждый сайт проводит только свои счета, но у аккаунта SnapEX Pay один адрес вебхука, а адаптер подтверждает платежи только по вебхуку. Поэтому автоматически платежи подтверждаются только на сайте, чей IPN-адрес указан как вебхук.

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

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