Криптоплатежи в Telegram-боте: как добавить крипто-оплату в бота
Криптоплатежи в Telegram-боте: как добавить крипто-оплату в бота, что планируется в виде нативного чекаута Qvard и рабочий путь через API сегодня.
Telegram-бот с криптоплатежами принимает заказ в чате и отправляет клиенту кнопку оплаты. Нативный Telegram-чекаут Qvard запланирован и ещё не выпущен. Статья показывает, как добавить крипто-оплату в бота уже сегодня, через живой API, платёжную страницу и webhook.
Что должен делать бот
Бот собирает заказ, создаёт платёж на вашем бэкенде, отправляет клиенту кнопку и ждёт webhook. Чат служит витриной, а сама оплата происходит на платёжной странице.
Статус: нативный чекаут для бота в дорожной карте
Нативный чекаут Qvard для Telegram-ботов ещё не выпущен, и статья не описывает его как доступный. Интеграция ниже работает сегодня через существующий API.
x-api-key: sk_live_…
{
"id": "order_1024",
"price": 149.99,
"paymentSystemId": 12
}
// 201 Created
{
"data": {
"id": "8f3k2a1c",
"redirectUrl": "https://my.qvard.com/pay/8f3k2a1c"
},
"code": 201,
"message": "success",
"status": true
}Вызов платежа из бэкенда бота
Бэкенд бота отправляет POST /api/v1/payment с заголовком x-api-key, номером заказа в id и суммой в USD в price. Ответ содержит redirectUrl, который становится кнопкой.
Кнопка и сообщение о заказе
Отправьте одно сообщение с заказом, суммой и кнопкой на redirectUrl. Сообщение пусть будет коротким, и не обещайте доставку или доступ до подтверждения платежа webhook.
Получение статуса на бэкенде
Endpoint webhook получает id и status, проверяет заголовок x-api-key и обновляет заказ. Открывать товар или услугу должен только статус paid.
x-api-key: sk_live_…
{ "id": "order_1024", "status": "paid" }Повторы и сбои
Если клиент закрыл страницу, заказ остаётся в ожидании, и бот может снова предложить ту же ссылку на оплату. Делайте обработчик webhook безопасным при повторе, потому что одно и то же сообщение может прийти дважды.
FAQ
Может ли Telegram-бот принимать крипту сегодня?
Да. Бот создаёт платёж через API, отправляет кнопку на redirectUrl и подтверждает заказ по webhook. Нативный Telegram-чекаут — в дорожной карте.
Нужен ли особый фреймворк для бота?
Нет. Любой код бота, который умеет вызывать HTTPS-endpoint и принимать webhook, может создавать платежи через API.
Где хранить ключ API?
Только на бэкенде бота. Никогда не помещайте ключ в сообщения чата или в код, который может увидеть клиент.
Как протестировать оплату в боте?
Создайте тестовый платёж из тестового заказа, оплатите его на платёжной странице и проверьте, что бот получает webhook.
