Skip to content

Platega

Platega (app.platega.io) — касса с оплатой через СБП, картой и криптой. Юзер уходит по редиректу на hosted-страницу Platega и после оплаты возвращается в бота. Валюта шлюза — RUB.

Способ оплаты у Platega задаётся числовым кодом в настройках шлюза (payment_method): один шлюз работает в одном методе. Идентификатор транзакции генерирует сама Platega — бот привязывает вебхук по нему (external_id).

Что понадобится

Мерчант-аккаунт на app.platega.io. Из кабинета Platega возьмите пару Merchant ID и Secret — она передаётся заголовками X-MerchantId / X-Secret и в запросах бота к Platega, и в обратном callback от Platega к боту.

Настройка в кабинете

В кабинете бота откройте платёжных провайдеров, выберите Platega и заполните поля:

ПолеЧто этоОбязательное
merchant_idMerchant ID из кабинета Plategaда
secretсекретный ключ; хранится в БД в зашифрованном видеда
payment_methodкод способа оплаты: 2 — СБП QR, 3 — карта, 11 — карточный эквайринг, 13 — криптанет, по умолчанию 2

Дальше включите тумблер активности провайдера и нажмите Тест — бот сделает запрос к API Platega с вашими ключами: ответ 401/403 означает, что ключи не приняты. Дополнительно у провайдера настраиваются отображаемое имя, комиссия для статистики и формы оплаты, которые видит юзер (карта / СБП / крипта).

Вебхук

https://ваш-домен/api/v1/payments/platega

Укажите этот URL как callback в кабинете Platega. Тело callback Platega не подписывает — подлинность проверяется по заголовкам X-MerchantId и X-Secret: бот сравнивает их со своими кредами (constant-time). Поэтому вебхук должен ходить строго по HTTPS, а secret нельзя нигде светить — кто знает пару заголовков, тот может подтвердить платёж. Неверные заголовки → HTTP 403, платёж не трогается.

Маппинг статусов из тела callback:

Статус PlategaЧто делает бот
CONFIRMEDзачисляет платёж
CANCELED / CANCELLED / CHARGEBACKED / EXPIRED / REJECTED / FAILEDзакрывает платёж как отменённый
остальныеоставляет в ожидании

Особенности

  • Возвратов по API нет — возврат делаете в кабинете Platega руками, а в боте фиксируете результат: /payments/refunds.
  • Рекурренты и сохранённые карты не поддерживаются.
  • Шлюз умеет опрос статуса (GET /transaction/{id}) — реконсилятор сам добивает платежи с потерянным вебхуком.
  • Описание платежа обрезается до 128 символов; после оплаты (и при неудаче) юзера возвращает на return_url, по умолчанию — в Telegram.

Платёж прошёл, а подписки нет?

Реконсилятор опрашивает Platega каждые 5 минут и сам зачисляет зависшие оплаты. Как это работает — /payments/webhooks.

MIT License · сделано для тех, кто продаёт VPN, а не настраивает ботов