14 KiB
Платежи
Платежные методы включаются настройками и отображаются пользователю как кнопки оплаты в Mini App и Telegram-сценариях. Настройки можно задавать через .env или через админку, если параметр есть в allowlist настроек.
Типовой порядок настройки
- Включите нужный провайдер в админке или через
.env. - Заполните публичные параметры, секреты и URL возврата.
- Настройте URL вебхука у провайдера, если это требуется.
- Проверьте порядок методов в
PAYMENT_METHODS_ORDER. - Проверьте подписи и иконки кнопок оплаты.
- Выполните тестовый платеж и проверьте логи
backend.
Общие ссылки:
- Справочник
.envсодержит все ключи провайдеров. - Админ-панель описывает UI-настройки платежей.
- Тарифы описывают цены, Telegram Stars и сценарии покупки.
- Логи помогают проверить webhook и создание платежных ссылок.
Webhook URL провайдеров
Все платежные webhook URL строятся от WEBHOOK_BASE_URL - публичного HTTPS-адреса backend/webhook-домена. Это должен быть домен, который проксируется на backend-сервер вебхуков (backend:8080), а не SUBSCRIPTION_MINI_APP_URL frontend/Mini App. Если WEBHOOK_BASE_URL=https://bot.example.com, то полный адрес получается как https://bot.example.com + путь из таблицы.
| Провайдер | Что указать в кабинете провайдера | Комментарий |
|---|---|---|
| YooKassa | WEBHOOK_BASE_URL + /webhook/yookassa |
Например https://bot.example.com/webhook/yookassa. |
| FreeKassa | WEBHOOK_BASE_URL + /webhook/freekassa |
Используйте как notification/webhook URL; при IP-фильтрации заполните FREEKASSA_TRUSTED_IPS. |
| Platega | WEBHOOK_BASE_URL + /webhook/platega |
Один общий webhook для основной, СБП/карты и crypto-кнопки Platega. |
| SeverPay | WEBHOOK_BASE_URL + /webhook/severpay |
Укажите как callback/webhook URL, если поле есть в кабинете мерчанта. |
| Wata | WEBHOOK_BASE_URL + /webhook/wata |
Если включена проверка подписи, настройте WATA_WEBHOOK_VERIFY_SIGNATURE и WATA_PUBLIC_KEY. |
| CryptoPay | WEBHOOK_BASE_URL + /webhook/cryptopay |
Указывается в настройках Crypto Bot / CryptoPay webhook. |
| Heleket | WEBHOOK_BASE_URL + /webhook/heleket |
При необходимости включите HELEKET_VERIFY_WEBHOOK_SIGNATURE и HELEKET_TRUSTED_IPS. |
| PayKilla | WEBHOOK_BASE_URL + /webhook/paykilla |
Указывается в PayKilla Dashboard -> Settings -> Webhooks; включите события оплаты инвойсов. |
| Telegram Stars | Отдельный платежный webhook не нужен | Stars-события приходят через webhook Telegram-бота: WEBHOOK_BASE_URL + /tg/webhook. |
После настройки сделайте тестовый платеж и проверьте, что в логах backend видно входящий POST на нужный путь. Если провайдер сообщает, что адрес недоступен, сначала проверьте DNS/HTTPS и reverse proxy для WEBHOOK_BASE_URL, затем убедитесь, что путь начинается ровно с /webhook/... без /api, /auth и frontend-домена.
YooKassa
YooKassa используется для рублевых оплат и может участвовать в сценариях автопродления period-подписок.
Что настроить:
- включение провайдера:
YOOKASSA_ENABLED; - идентификаторы и секреты магазина;
- URL вебхука:
WEBHOOK_BASE_URL+/webhook/yookassa; - отображение кнопки оплаты и порядок платежных методов.
Справочник переменных: YooKassa.
FreeKassa
FreeKassa подключается как отдельный платежный метод и обрабатывает входящие webhook-события через backend.
Что настроить:
- включение провайдера:
FREEKASSA_ENABLED; - ID магазина, API/secret-ключи и настройки подписи;
- список доверенных IP, если используется;
- публичный URL вебхука:
WEBHOOK_BASE_URL+/webhook/freekassa.
Справочник переменных: FreeKassa.
Platega
Platega подключается как отдельный платежный провайдер, но внутри Minishop может дать несколько кнопок: основную устаревшую кнопку, СБП/карту и крипто-кнопку. Общие параметры мерчанта задаются один раз, а ID методов оплаты и подписи кнопок настраиваются отдельно.
Что включить:
PLATEGA_ENABLED- общий флаг провайдера;PLATEGA_SBP_ENABLED- отдельная кнопка СБП/карта;PLATEGA_CRYPTO_ENABLED- отдельная crypto-кнопка Platega;PLATEGA_PAYMENT_METHOD- устаревший/резервный ID метода оплаты для старых callback-запросов и старых установок.
Что настроить:
- Укажите
PLATEGA_BASE_URL,PLATEGA_MERCHANT_IDиPLATEGA_SECRET. - Заполните
PLATEGA_SBP_METHODи/илиPLATEGA_CRYPTO_METHOD, если используете отдельные кнопки. - Проверьте
PLATEGA_RETURN_URLиPLATEGA_FAILED_URL. - Укажите URL вебхука:
WEBHOOK_BASE_URL+/webhook/platega. - Настройте тексты и иконки кнопок через
PAYMENT_PLATEGA_SBP_*иPAYMENT_PLATEGA_CRYPTO_*. - Добавьте нужные методы в
PAYMENT_METHODS_ORDER.
Справочник переменных: Platega.
SeverPay
SeverPay подключается как отдельный платежный метод с собственным MID, token и сроком жизни платежной ссылки.
Что настроить:
- Включите
SEVERPAY_ENABLED. - Укажите
SEVERPAY_BASE_URL. - Заполните
SEVERPAY_MIDиSEVERPAY_TOKEN. - Настройте
SEVERPAY_RETURN_URL. - Укажите URL вебхука:
WEBHOOK_BASE_URL+/webhook/severpay. - При необходимости задайте
SEVERPAY_LIFETIME_MINUTES. - Добавьте
severpayвPAYMENT_METHODS_ORDER.
Справочник переменных: SeverPay.
Wata
Wata подключается как отдельный провайдер с bearer token, платежными ссылками и опциональной проверкой подписи webhook.
Что настроить:
- Включите
WATA_ENABLED. - Укажите
WATA_BASE_URLиWATA_API_TOKEN. - Проверьте
WATA_RETURN_URLиWATA_FAILED_URL. - Настройте
WATA_LINK_TTL_MINUTES: минимум 15 минут, максимум 43200. - Укажите URL вебхука:
WEBHOOK_BASE_URL+/webhook/wata. - Если включаете проверку подписи, задайте
WATA_WEBHOOK_VERIFY_SIGNATUREи при необходимостиWATA_PUBLIC_KEY. - Для дополнительной защиты заполните
WATA_TRUSTED_IPS. - Добавьте
wataвPAYMENT_METHODS_ORDER.
Справочник переменных: Wata.
CryptoPay
CryptoPay используется для криптовалютных платежей через отдельный токен и сеть Crypto Bot API.
Что настроить:
- Включите
CRYPTOPAY_ENABLED. - Укажите
CRYPTOPAY_TOKEN. - Выберите
CRYPTOPAY_NETWORK:mainnetилиtestnet. - Задайте
CRYPTOPAY_CURRENCY_TYPE:fiatилиcrypto. - Проверьте
CRYPTOPAY_ASSET, напримерRUB,USDTилиBTC. - Укажите URL вебхука:
WEBHOOK_BASE_URL+/webhook/cryptopay. - Добавьте
cryptopayвPAYMENT_METHODS_ORDER.
Для тестов используйте соответствующую сеть: testnet-токен не должен попадать в mainnet-настройки. Если сумма или asset выглядят неверно, проверьте сочетание CRYPTOPAY_CURRENCY_TYPE и CRYPTOPAY_ASSET.
Справочник переменных: CryptoPay.
Heleket
Heleket используется для крипто-инвойсов с отдельными merchant ID, ключом платежного API, валютой инвойса и настройками проверки webhook.
Что настроить:
- Включите
HELEKET_ENABLED. - Укажите
HELEKET_BASE_URL,HELEKET_MERCHANT_IDиHELEKET_API_KEY. - Настройте
HELEKET_CURRENCY. - При необходимости задайте
HELEKET_TO_CURRENCYиHELEKET_NETWORK. - Проверьте
HELEKET_RETURN_URLиHELEKET_SUCCESS_URL. - Настройте
HELEKET_LIFETIME_SECONDS: допустимый диапазон 300..43200. - Укажите URL вебхука:
WEBHOOK_BASE_URL+/webhook/heleket. - Если включаете проверку webhook, задайте
HELEKET_VERIFY_WEBHOOK_SIGNATURE. - Для IP-фильтрации заполните
HELEKET_TRUSTED_IPS. - Добавьте
heleketвPAYMENT_METHODS_ORDER.
Справочник переменных: Heleket.
PayKilla
PayKilla используется для крипто-инвойсов V2 через hosted checkout https://gopay.paykilla.com/{invoice_id}. API-запросы подписываются HMAC-SHA256, webhook проверяется по заголовку X-API-SIGN и raw body.
PayKilla строго валидирует текстовые поля invoice. Minishop перед отправкой автоматически заменяет тире пробелами, транслитерирует кириллицу и оставляет только ASCII-буквы, цифры, пробелы, _, ., , в purpose и description.
Какие полномочия нужны API key:
- В PayKilla Dashboard откройте Settings -> API keys.
- Создайте ключ типа HMAC.
- Для приема оплат включите permission INVOICE.
- Permission WITHDRAWAL не нужен для Minishop-платежей; не включайте его без отдельной необходимости выплат.
- Сохраните
publicKeyвPAYKILLA_API_KEY, аsecretKeyвPAYKILLA_SECRET_KEY.
Как настроить webhook в PayKilla:
- Откройте Settings -> Webhooks.
- В URL укажите
WEBHOOK_BASE_URL+/webhook/paykilla, напримерhttps://bot.example.com/webhook/paykilla. - Минимальные галочки:
INVOICE_PAID,INVOICE_EXPIRED. - Рекомендуемые галочки для production:
INVOICE_PAID,PAYMENT_COMPLETED,PAYMENT_FAILED,PAYMENT_OVERPAID,PAYMENT_UNDERPAID,PAYMENT_PARTIAL,INVOICE_EXPIRED,COMPLIANCE_FAILED. - Опционально включите
INVOICE_CREATED,PAYMENT_PENDING,TRANSACTION_CONFIRMEDиTRANSACTION_FINAL, если нужны промежуточные события в логах. - Оставьте
PAYKILLA_VERIFY_WEBHOOK_SIGNATURE=True. Если публичный URL у PayKilla отличается отWEBHOOK_BASE_URL+/webhook/paykilla, задайте точное значение вPAYKILLA_WEBHOOK_URL.
Что настроить в Minishop:
- Включите
PAYKILLA_ENABLED. - Укажите
PAYKILLA_API_KEYиPAYKILLA_SECRET_KEY. - Проверьте
PAYKILLA_CURRENCYиPAYKILLA_PAYMENT_CURRENCIES, напримерUSDTTRC,BTC,ETH. - При необходимости задайте
PAYKILLA_SUCCESS_URL,PAYKILLA_RETURN_URLиPAYKILLA_CANCEL_URL. - Добавьте
paykillaвPAYMENT_METHODS_ORDER, если хотите задать явный порядок кнопок.
Справочник переменных: PayKilla.
Telegram Stars
Telegram Stars используются напрямую и поддерживаются в legacy-ценах и JSON-каталоге тарифов.
Где применяются Stars:
- цены периодов подписки;
- пакеты трафика;
- premium-докупки;
- HWID-докупки, если они включены в каталоге тарифов.
Что проверить:
STARS_ENABLED;- отдельный платежный webhook не настраивается: Telegram Stars приходят через webhook Telegram-бота
WEBHOOK_BASE_URL+/tg/webhook; - Stars-цены в legacy-настройках или JSON-каталоге;
- корректное округление цены до целого количества Stars;
- сценарии смены тарифа: XTR/Stars-докупки не конвертируются без явного курса.
См. также переменные платежей и тарифы.