Платежи
Платежные методы включаются через .env или админ-панель, если параметр добавлен в allowlist настроек. В Mini App и Telegram-сценариях включённые методы отображаются как кнопки оплаты.
Общий порядок настройки
Заголовок раздела «Общий порядок настройки»- Включите нужный провайдер.
- Заполните публичные параметры, секреты и URL возврата.
- Настройте webhook URL у провайдера, если он используется.
- Проверьте порядок методов в
PAYMENT_METHODS_ORDER. - Проверьте подписи и иконки кнопок оплаты.
- Выполните тестовый платеж.
- Проверьте логи
backend.
[!NOTE] Если URL возврата не задан явно, используется ссылка на Telegram-бота.
Общие ссылки
Заголовок раздела «Общие ссылки»- Справочник
.env— все ключи платежных провайдеров. - Админ-панель — UI-настройки платежей.
- Тарифы — цены, Telegram Stars и сценарии покупки.
- Промокоды — скидки, множители и checkout-активация.
- Логи — проверка webhook и создания платежных ссылок.
Проверка расчёта
Заголовок раздела «Проверка расчёта»Заказ активируется только по аутентифицированному успешному подтверждению в той же валюте. Подтверждённая сумма, равная цене счёта или больше неё, активирует ровно один исходный заказ: переплата не добавляет месяцы, трафик или устройства. Недоплата и другая валюта не активируют заказ. Ответ webhook отклоняет такое подтверждение; если провайдер уже захватил средства, возврат или отдельная доплата оформляются через этого провайдера, а не выдачей полного заказа за меньшую сумму.
Webhook URL провайдеров
Заголовок раздела «Webhook URL провайдеров»[!TIP] Готовый 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 + путь из таблицы.
Если у провайдера включена IP-фильтрация (FREEKASSA_TRUSTED_IPS, WATA_TRUSTED_IPS,
HELEKET_TRUSTED_IPS, PAYKILLA_TRUSTED_IPS или встроенный allowlist YooKassa),
reverse proxy должен прокидывать X-Forwarded-For, а его IP/CIDR должен входить в
TRUSTED_PROXIES. Иначе backend увидит IP proxy/Docker gateway и может отклонить
валидный webhook с ошибкой 403. Для webhook-домена за Cloudflare backend использует
CF-Connecting-IP, предварительно проверив, что ближайший внешний proxy-hop принадлежит
официальной сети Cloudflare.
| Провайдер | Что указать в кабинете провайдера | Комментарий |
|---|---|---|
| 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; включите события оплаты инвойсов. |
| LAVA | WEBHOOK_BASE_URL + /webhook/lava |
Передается автоматически как hookUrl при создании счета; можно также указать в кабинете LAVA Business. |
| Pally | WEBHOOK_BASE_URL + /webhook/pally |
Укажите как Result URL в настройках магазина Pally / PayPalych. Postback приходит в формате application/x-www-form-urlencoded. |
| CloudPayments | WEBHOOK_BASE_URL + /webhook/cloudpayments |
Укажите как адрес уведомлений Pay и Fail в кабинете CloudPayments. При IP-фильтрации заполните CLOUDPAYMENTS_TRUSTED_IPS. |
| Overpay | WEBHOOK_BASE_URL + /webhook/overpay |
Укажите как notification URL в кабинете Overpay. Уведомление приходит JSON POST’ом с HTTP Basic auth (Shop ID / Secret Key). |
| Stripe | WEBHOOK_BASE_URL + /webhook/stripe |
Укажите этот адрес в Stripe Dashboard и включите события checkout.session.completed, checkout.session.expired, payment_intent.succeeded, payment_intent.payment_failed, payment_intent.canceled. |
| 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»YooKassa используется для рублевых оплат. Провайдер также может участвовать в сценариях автопродления period-подписок.
Настройка
Заголовок раздела «Настройка»- Включите
YOOKASSA_ENABLED. - Заполните
YOOKASSA_SHOP_ID,YOOKASSA_SECRET_KEYиYOOKASSA_RETURN_URL. - Скопируйте URL вебхука из админ-панели и укажите его в кабинете YooKassa.
Справочник
Заголовок раздела «Справочник»FreeKassa
Заголовок раздела «FreeKassa»FreeKassa подключается как отдельный платежный метод. Входящие webhook-события обрабатываются через backend.
Настройка
Заголовок раздела «Настройка»- Включите
FREEKASSA_ENABLED. - Заполните
FREEKASSA_MERCHANT_ID,FREEKASSA_FIRST_SECRET,FREEKASSA_SECOND_SECRETиFREEKASSA_API_KEY. - Проверьте настройки подписи.
- Скопируйте URL вебхука из админ-панели и укажите его в кабинете FreeKassa.
- При необходимости заполните
FREEKASSA_TRUSTED_IPS.
Справочник
Заголовок раздела «Справочник»Platega
Заголовок раздела «Platega»Platega подключается как отдельный платежный провайдер. Внутри Minishop он может создавать несколько кнопок: основную legacy-кнопку, СБП/карту и crypto-кнопку.
Настройка
Заголовок раздела «Настройка»- Включите
PLATEGA_ENABLED. - Укажите
PLATEGA_MERCHANT_IDиPLATEGA_SECRET. - Включите необходимые кнопки
PLATEGA_SBP_ENABLED,PLATEGA_CRYPTO_ENABLED. - Скопируйте URL вебхука из админ-панели и укажите его в кабинете Platega.
Справочник
Заголовок раздела «Справочник»SeverPay
Заголовок раздела «SeverPay»SeverPay подключается как отдельный платежный метод с собственным MID, token и сроком жизни платежной ссылки.
Настройка
Заголовок раздела «Настройка»- Включите
SEVERPAY_ENABLED. - Укажите
SEVERPAY_BASE_URL. - Заполните
SEVERPAY_MIDиSEVERPAY_TOKEN. - Скопируйте URL вебхука из админ-панели и укажите его в кабинете SeverPay.
- При необходимости задайте
SEVERPAY_LIFETIME_MINUTES.
Справочник
Заголовок раздела «Справочник»Wata подключается как отдельный провайдер с bearer token, платежными ссылками и опциональной проверкой подписи webhook.
Настройка
Заголовок раздела «Настройка»- Включите
WATA_ENABLED. - Укажите
WATA_BASE_URLиWATA_API_TOKEN. - Настройте
WATA_LINK_TTL_MINUTES. - Скопируйте URL вебхука из админ-панели и укажите его в кабинете Wata.
- При необходимости включите
WATA_WEBHOOK_VERIFY_SIGNATURE. - Если используется проверка подписи, задайте
WATA_PUBLIC_KEY. - Для IP-фильтрации заполните
WATA_TRUSTED_IPS.
Ограничения
Заголовок раздела «Ограничения»WATA_LINK_TTL_MINUTESдолжен быть от15до43200.
Справочник
Заголовок раздела «Справочник»CryptoPay
Заголовок раздела «CryptoPay»CryptoPay используется для криптовалютных платежей через отдельный токен и сеть Crypto Bot API.
Настройка
Заголовок раздела «Настройка»- Включите
CRYPTOPAY_ENABLED. - Укажите
CRYPTOPAY_TOKEN. - Выберите
CRYPTOPAY_NETWORK:mainnetилиtestnet. - Задайте
CRYPTOPAY_CURRENCY_TYPE:fiatилиcrypto. - Проверьте
CRYPTOPAY_ASSET, напримерRUB,USDTилиBTC. - Скопируйте URL вебхука из админ-панели и укажите его в CryptoPay.
Проверка
Заголовок раздела «Проверка»- Testnet-токен должен использоваться только с
testnet. - Mainnet-токен должен использоваться только с
mainnet. - Если сумма или asset выглядят неверно, проверьте сочетание
CRYPTOPAY_CURRENCY_TYPEиCRYPTOPAY_ASSET.
Справочник
Заголовок раздела «Справочник»Heleket
Заголовок раздела «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. - Скопируйте URL вебхука из админ-панели и укажите его в кабинете Heleket.
- При необходимости включите
HELEKET_VERIFY_WEBHOOK_SIGNATURE. - Для IP-фильтрации заполните
HELEKET_TRUSTED_IPS.
Ограничения
Заголовок раздела «Ограничения»HELEKET_LIFETIME_SECONDSдолжен быть от300до43200.- Заказы со статусами
paidиpaid_overактивируются только приis_final=true. Дляpaid_overначисляется исходный фиксированный объём заказа, без доплаты за переплату.
Справочник
Заголовок раздела «Справочник»PayKilla
Заголовок раздела «PayKilla»PayKilla используется для крипто-инвойсов V2 через hosted checkout https://gopay.paykilla.com/{invoice_id}.
API-запросы подписываются HMAC-SHA256. Webhook проверяется по заголовку X-API-SIGN и raw body.
Особенности
Заголовок раздела «Особенности»- PayKilla строго валидирует текстовые поля invoice.
- В
purposeиdescriptionMinishop отправляет простой английский текст<WEBAPP_TITLE> payment <id>. - Локализованное описание платежа остается только внутри Minishop.
- ASCII-safe sanitizer допускает ASCII-буквы, цифры, пробелы,
_,.,,. - Минимальная сумма платежа задается настройками
PAYKILLA_MIN_PAYMENT_AMOUNTиPAYKILLA_MIN_PAYMENT_CURRENCY; по умолчанию это10 USD. - Если выбранный тариф/пакет ниже этого порога после конвертации, Telegram bot не показывает кнопку PayKilla, WebApp показывает метод неактивным, а API создания платежа возвращает ошибку
payment_amount_below_minimum.
Валюта invoice
Заголовок раздела «Валюта invoice»Minishop создает invoice в валюте, которую PayKilla принимает в поле currency.
Для fiat-invoice сумма округляется до двух знаков; для криптоактивов сохраняется точная десятичная величина. При успешном webhook Minishop сверяет сумму и валюту с аутентифицированным invoice PayKilla до активации заказа.
Если валюта тарифа входит в PAYKILLA_INVOICE_CURRENCIES, сумма отправляется как есть.
Если валюта тарифа не входит в список, сумма конвертируется в PAYKILLA_CURRENCY. По умолчанию рублевые тарифы конвертируются в USD через ExchangeRate-API с кэшем PAYKILLA_EXCHANGE_RATE_CACHE_SECONDS.
Перед созданием invoice Minishop читает GET /api/v2/currency и проверяет invoiceMin/invoiceMax для валюты инвойса. Этот endpoint также показывает актуальные currency/payment-method ограничения конкретного merchant account.
Payload invoice
Заголовок раздела «Payload invoice»Payload создания invoice содержит обязательные поля type, purpose, currency, totalPrice и paymentCurrencies.
Дополнительно отправляются clientOrderId, description, expiredAt, userPaysServiceFee и userPaysNetworkFee.
Redirect URLs в PayKilla не отправляются. Завершение платежа обрабатывается через webhook.
API key
Заголовок раздела «API key»- В PayKilla Dashboard откройте Settings -> API keys.
- Создайте ключ типа HMAC.
- Для приема оплат включите permission INVOICE.
- Permission WITHDRAWAL не нужен для Minishop-платежей.
- Сохраните
publicKeyвPAYKILLA_API_KEY. - Сохраните
secretKeyвPAYKILLA_SECRET_KEY.
Webhook
Заголовок раздела «Webhook»- В PayKilla Dashboard откройте Settings -> Webhooks.
- Скопируйте URL вебхука из админ-панели и укажите его в PayKilla.
- Включите минимальные события:
INVOICE_PAID,INVOICE_EXPIRED. - Для production также включите
PAYMENT_COMPLETED,PAYMENT_FAILED,PAYMENT_OVERPAID,PAYMENT_UNDERPAID,PAYMENT_PARTIAL,COMPLIANCE_FAILED. - Если нужны промежуточные статусы в логах, дополнительно включите
INVOICE_CREATED,PAYMENT_PENDING,TRANSACTION_CONFIRMEDиTRANSACTION_FINAL. - Оставьте
PAYKILLA_VERIFY_WEBHOOK_SIGNATURE=True.
Настройка
Заголовок раздела «Настройка»- Включите
PAYKILLA_ENABLED. - Укажите
PAYKILLA_API_KEYиPAYKILLA_SECRET_KEY. - Оставьте
PAYKILLA_CURRENCY=USD, если PayKilla не принимает валюту тарифов как invoice currency. ВPAYKILLA_INVOICE_CURRENCIESукажите валюты, доступные в PayKilla для поляcurrency, напримерUSD,EUR. - В
PAYKILLA_PAYMENT_CURRENCIESоставьтеUSDTTRC,BTC,ETH,USDTBSC,USDTTONили укажите другой список тикеров, доступных в PayKilla Dashboard;USDTTRCдолжен идти первым. - Оставьте
PAYKILLA_MIN_PAYMENT_AMOUNT=10иPAYKILLA_MIN_PAYMENT_CURRENCY=USD, если минимальный invoice PayKilla равен10 USD. - Убедитесь, что webhook
/webhook/paykillaнастроен в PayKilla: Minishop не отправляет redirect URLs в PayKilla и полагается на webhook для активации платежа. - Добавьте
paykillaвPAYMENT_METHODS_ORDER, если хотите задать явный порядок кнопок.
Справочник
Заголовок раздела «Справочник»LAVA Business используется для рублевых оплат картами и СБП через счета https://api.lava.ru.
Исходящие API-запросы подписываются HMAC-SHA256 от raw body, подпись передается в заголовке Signature. Webhook проверяется по заголовку Authorization: принимается подпись raw body или sorted-keys JSON (legacy PHP SDK).
Особенности
Заголовок раздела «Особенности»- Счета выставляются только в рублях (
RUB). hookUrlпередается автоматически при создании счета, если заданWEBHOOK_BASE_URL.LAVA_INCLUDE_SERVICESограничивает способы оплаты на странице счета, напримерcard,sbp.- При успешной оплате сумма из webhook сверяется с суммой платежа; расхождение отклоняется.
Настройка
Заголовок раздела «Настройка»- Включите
LAVA_ENABLED. - Укажите
LAVA_SHOP_IDиLAVA_SECRET_KEYиз кабинета LAVA Business. - Если магазин использует отдельный дополнительный ключ для вебхуков, задайте
LAVA_WEBHOOK_SECRET; пустое значение означает использованиеLAVA_SECRET_KEY. - При необходимости задайте
LAVA_LIFETIME_MINUTES(1..7200) иLAVA_RETURN_URL. - Скопируйте URL вебхука из админ-панели и при необходимости укажите его в кабинете LAVA.
Справочник
Заголовок раздела «Справочник»Pally / PayPalych используется для оплат через hosted-страницу счета https://pally.info. Minishop создает счет через POST /api/v1/bill/create, сохраняет bill_id, а завершение платежа обрабатывает через Result URL /webhook/pally.
Особенности
Заголовок раздела «Особенности»- Поддерживаемые валюты счета:
RUB,USD,EUR. - API-запросы отправляются как form-urlencoded поля с
Authorization: Bearer <PALLY_API_TOKEN>. - Подпись postback проверяется по формуле
strtoupper(md5(OutSum:InvId:token));tokenберется изPALLY_SIGNATURE_TOKEN, а если он пустой - изPALLY_API_TOKEN. OutSumвходит в подпись postback и строго сверяется с локальным счетом. ПриPALLY_PAYER_PAYS_COMMISSION=1допускается только подписанныйOutSumбольше суммы счета (комиссия сверху); начисление всегда берется из локального заказа.- Статусы
SUCCESSиOVERPAIDактивируют покупку,FAILпомечает платеж неуспешным,NEW,PROCESSиUNDERPAIDостаются pending.
Настройка
Заголовок раздела «Настройка»- Включите
PALLY_ENABLED. - Укажите
PALLY_API_TOKEN,PALLY_SHOP_IDи при необходимости отдельныйPALLY_SIGNATURE_TOKEN. - В кабинете Pally укажите Result URL:
WEBHOOK_BASE_URL+/webhook/pally. - При необходимости задайте
PALLY_RETURN_URL,PALLY_SUCCESS_URL,PALLY_FAIL_URL,PALLY_TTL_SECONDSиPALLY_PAYER_PAYS_COMMISSION. - Если нужна жесткая кнопка конкретного метода на стороне Pally, задайте
PALLY_PAYMENT_METHOD=BANK_CARDилиPALLY_PAYMENT_METHOD=SBP.
Справочник
Заголовок раздела «Справочник»CloudPayments
Заголовок раздела «CloudPayments»CloudPayments используется для оплат картами через Orders API https://api.cloudpayments.ru/orders/create.
Исходящие запросы авторизуются HTTP Basic auth: логин — CLOUDPAYMENTS_PUBLIC_ID, пароль — CLOUDPAYMENTS_API_SECRET. Уведомления Pay/Fail приходят как application/x-www-form-urlencoded и подписываются HMAC-SHA256 (base64) от raw body на CLOUDPAYMENTS_API_SECRET в заголовке Content-HMAC (старые интеграции — X-Content-HMAC).
Особенности
Заголовок раздела «Особенности»- Платёж создаётся как заказ (order) со ссылкой
https://orders.cloudpayments.ru/...;InvoiceId— это внутренний ID платежа. - Поддерживаемые валюты:
RUB,USD,EUR,GBP,KZT,UAH,BYN,AZN,AMD,KGS. - При успешной оплате сумма из webhook сверяется с суммой платежа; расхождение отклоняется кодом
12. - При
CLOUDPAYMENTS_RECURRING_ENABLED=truePay webhook сохраняет CloudPaymentsTokenкак способ оплаты пользователя, а автопродление выполняет merchant-initiated запрос/payments/tokens/chargeсTrInitiatorCode=0иPaymentScheduled=1. - Встроенные CloudPayments subscriptions не используются: срок подписки, HWID-продления, отмена автопродления и повторная активация остаются в общей логике бота.
- Backend отвечает CloudPayments телом
{"code": 0}при успешной обработке.
Настройка
Заголовок раздела «Настройка»- Включите
CLOUDPAYMENTS_ENABLED. - Укажите
CLOUDPAYMENTS_PUBLIC_IDиCLOUDPAYMENTS_API_SECRETиз кабинета CloudPayments. - При необходимости задайте
CLOUDPAYMENTS_RETURN_URLиCLOUDPAYMENTS_FAILED_URL. - Скопируйте URL вебхука из админ-панели и укажите его в CloudPayments как адрес уведомлений Pay и Fail.
- Для автопродления включите получение
Tokenв уведомлении Pay на стороне CloudPayments и задайтеCLOUDPAYMENTS_RECURRING_ENABLED=true. - Для IP-фильтрации при необходимости заполните
CLOUDPAYMENTS_TRUSTED_IPS.
Справочник
Заголовок раздела «Справочник»Overpay
Заголовок раздела «Overpay»Overpay построен на платформе BeGateway: платёж создаётся как hosted-checkout через POST https://checkout.overpay.io/ctp/api/checkouts, пользователь перенаправляется на redirect_url, а завершение обрабатывается через notification URL /webhook/overpay.
Исходящие запросы авторизуются HTTP Basic auth: логин — OVERPAY_SHOP_ID, пароль — OVERPAY_SECRET_KEY. Суммы передаются в минимальных единицах валюты (копейки/центы). Уведомления приходят JSON POST’ом и авторизуются теми же HTTP Basic-кредами; tracking_id — это внутренний ID платежа.
Особенности
Заголовок раздела «Особенности»- Checkout создаётся с
transaction_type=payment; в ответе сохраняетсяtoken, а ссылкаredirect_urlпоказывается пользователю. - Поддерживаемые валюты:
USD,EUR,RUB,GBPи другие в зависимости от контракта магазина. - При успешной оплате сумма из webhook (в минимальных единицах) должна покрывать сумму платежа; недоплата отклоняется кодом
400, а переплата активирует исходный фиксированный заказ. - При
OVERPAY_RECURRING_ENABLED=truecheckout создаётся сadditional_data.contract=["recurring"]; успешный webhook сохраняетcredit_card.tokenкак способ оплаты пользователя, а автопродление выполняет списаниеPOST https://gateway.overpay.io/transactions/paymentsпо сохранённому токену. - Встроенные Overpay subscriptions не используются: срок подписки, HWID-продления, отмена автопродления и повторная активация остаются в общей логике бота.
Настройка
Заголовок раздела «Настройка»- Включите
OVERPAY_ENABLED. - Укажите
OVERPAY_SHOP_IDиOVERPAY_SECRET_KEYиз кабинета Overpay. - При необходимости задайте
OVERPAY_RETURN_URL,OVERPAY_SUCCESS_URL,OVERPAY_DECLINE_URL,OVERPAY_FAIL_URL. - Скопируйте URL вебхука (
WEBHOOK_BASE_URL+/webhook/overpay) и укажите его в кабинете Overpay как notification URL. - Для автопродления задайте
OVERPAY_RECURRING_ENABLED=true. - Для IP-фильтрации при необходимости заполните
OVERPAY_TRUSTED_IPS.
Справочник
Заголовок раздела «Справочник»Stripe использует Checkout Sessions для hosted-ссылок оплаты и PaymentIntents для автопродления, управляемого приложением.
Особенности
Заголовок раздела «Особенности»- Платёж создаётся как hosted Checkout Session; внутренний ID платежа передаётся в
client_reference_idи metadata (payment_db_id). - При
STRIPE_RECURRING_ENABLED=trueCheckout создаётся сpayment_intent_data[setup_future_usage]=off_session; успешные webhook сохраняютcustomerиpayment_method, а автопродление создаёт off-session PaymentIntent. - Встроенные Stripe Billing Subscriptions не используются: срок подписки, HWID-продления, отмена автопродления и повторные попытки остаются в общей логике бота.
STRIPE_SUPPORTED_CURRENCIESограничивает кнопки оплаты валютами, которые поддерживаются вашим аккаунтом Stripe и включёнными способами оплаты.
Настройка
Заголовок раздела «Настройка»- Включите
STRIPE_ENABLED. - Укажите
STRIPE_SECRET_KEYиз Stripe Dashboard. - Скопируйте URL вебхука из админ-панели и укажите его в Stripe Dashboard.
- Включите события
checkout.session.completed,checkout.session.expired,payment_intent.succeeded,payment_intent.payment_failed,payment_intent.canceled. - Задайте
STRIPE_WEBHOOK_SECRETиз signing secret эндпоинта (whsec_...). - При необходимости задайте
STRIPE_RETURN_URLиSTRIPE_CANCEL_URL. - Для автопродления включите
STRIPE_RECURRING_ENABLED=true.
Справочник
Заголовок раздела «Справочник»Telegram Stars
Заголовок раздела «Telegram Stars»Telegram Stars используются напрямую и поддерживаются в legacy-ценах и JSON-каталоге тарифов.
Где используются
Заголовок раздела «Где используются»- Цены period-подписок.
- Пакеты трафика.
- Premium-докупки.
- HWID-докупки, если они включены в каталоге тарифов.
Настройка
Заголовок раздела «Настройка»- Включите
STARS_ENABLED. - Проверьте Stars-цены в legacy-настройках или JSON-каталоге.
- Убедитесь, что цена округляется до целого количества Stars.
- Проверьте сценарии смены тарифа.
Ограничения
Заголовок раздела «Ограничения»- Отдельный платежный webhook не нужен.
- Stars-события приходят через webhook Telegram-бота:
WEBHOOK_BASE_URL+/tg/webhook. - XTR/Stars-докупки не конвертируются без явно заданного курса.