Как принимать оплату криптовалютой в Telegram-боте (USDT пошагово)

Telegram-боты и платные сообщества живут за счёт мгновенной выдачи. Как подключить криптовалютный платёжный шлюз к боту, чтобы пользователи платили в USDT и получали доступ автоматически.

Обновлено: 5 мин чтения
Приём оплаты криптовалютой в Telegram-боте: чат с кнопкой «Оплатить в USDT» и сообщением о подтверждении

Чтобы принимать оплату криптовалютой в Telegram-боте, пусть бэкенд бота создаёт счёт через API криптовалютного платёжного шлюза, когда пользователь нажимает «Купить», отправляет полученную ссылку на оплату inline-кнопкой и слушает подписанный вебхук шлюза. Когда платёж подтверждён, бот автоматически выдаёт товар, ключ или приглашение в канал.

Telegram-боты и платные сообщества — одни из самых естественных сценариев для криптовалютной оплаты: пользователи из разных стран, у многих уже есть USDT, и они ждут выдачи за секунды. В этом руководстве — архитектура, поток сообщений и детали, которые делают схему надёжной.

Почему криптовалюта так хорошо подходит Telegram-ботам

  • Глобальная аудитория: пользователи ботов приходят отовсюду; одна цена в USDT подходит всем.
  • Оплата с телефона: размещённая страница оплаты открывается во встроенном браузере Telegram, а приложение кошелька может отсканировать QR-код или скопировать адрес.
  • Мгновенная автоматизация: подписанный вебхук позволяет боту выдавать заказ без ручной проверки в обозревателе блоков.
  • Быстрые сети: в TRON и BNB Smart Chain платежи обычно подтверждаются примерно за минуту.

Telegram-боты и платные сообщества — один из ключевых сценариев, под которые создан mistKET, наряду с SaaS, хостингом и цифровыми товарами.

Архитектура: три компонента

КомпонентРоль
Telegram-бот (через Bot API)Общается с пользователем: меню, кнопки, сообщения о выдаче
Ваш бэкендХранит заказы, вызывает API шлюза, принимает вебхуки, хранит секреты
Шлюз mistKETРазмещённая страница оплаты, мониторинг блокчейна, подтверждения, зачисление

Какой бы фреймворк вы ни использовали, схема приёма криптовалюты в Telegram-боте одна и та же. Бот и бэкенд обычно — один небольшой сервис. Главное, чтобы секреты API и вебхуков хранились на сервере — никогда в сообщениях или клиентском коде. Официальная документация Telegram для ботов — на core.telegram.org.

Пошагово: приём оплаты криптовалютой в Telegram-боте

  1. Пользователь выбирает товар — например, «Доступ на 1 месяц» через inline-клавиатуру. Бэкенд создаёт заказ с Telegram ID пользователя.
  2. Бэкенд создаёт счёт — один подписанный POST /api/v1/invoices с суммой, валютой, ID заказа и callback-URL.
  3. Бот отправляет кнопку оплаты — inline-кнопку со ссылкой на полученный checkout_url и короткую подсказку: «Отправьте точную сумму в выбранной сети».
  4. Пользователь платит — на размещённой странице выбирает USDT в TRON, BSC, Ethereum или Arbitrum (или TRX, BNB, ETH) и платит из кошелька или с биржи.
  5. Приходит вебхук — после подтверждений ваш callback получает подписанное событие invoice.confirmed с ID заказа.
  6. Бот выдаёт заказ — проверьте подпись, отметьте заказ оплаченным и отправьте в чат пользователя лицензионный ключ, файл или одноразовую ссылку-приглашение в канал.
Главное: связывайте каждый счёт с Telegram ID пользователя через ID заказа. Когда придёт вебхук, вы точно знаете, кому писать.

Минимальная модель данных

Для платного бота не нужна сложная база данных. Трёх таблиц хватает для большинства случаев:

ТаблицаКлючевые поляНазначение
userstelegram_id, username, access_untilУ кого есть доступ и до какого числа
ordersorder_id, telegram_id, product, amount, statusОдна строка на каждую попытку покупки
invoicesorder_id, invoice_uuid, checkout_url, network, paid_amountСвязь между вашим заказом и счётом шлюза

Когда приходит вебхук, найдите заказ по order_id, убедитесь, что он ещё не выдан, обновите статус и напишите пользователю по telegram_id. Это весь цикл выдачи.

Примеры текстов сообщений

Понятные формулировки в чате сокращают число обращений в поддержку. Последовательность, которая хорошо работает:

  • Сообщение со счётом: «Ваш заказ: доступ на 1 месяц, 15 USD. Нажмите «Оплатить», чтобы открыть защищённую страницу оплаты. Отправьте точную сумму в выбранной сети».
  • Оплачено: «Платёж обнаружен. Ждём подтверждений сети — обычно это минута-две».
  • Подтверждено: «Платёж подтверждён. Вот ваша ссылка-приглашение — она срабатывает один раз».
  • Недоплата: «Мы получили меньше суммы счёта. Откройте ту же страницу оплаты, чтобы доплатить остаток».
  • Истёк: «Срок действия счёта истёк. Нажмите ниже, чтобы получить новый».

Поддержка без скриншотов

Когда пользователь спрашивает о платеже, просите только номер заказа. Открыв счёт в панели мерчанта, вы видите ожидаемую и полученную сумму, сеть и хеш транзакции, поэтому скриншоты и адреса кошельков от пользователя не нужны. Кнопка «Поддержка» в боте может передавать номер заказа автоматически — и большинство вопросов об оплате решается за десять секунд вместо долгой переписки.

Хорошие UX-паттерны в чате

  • Отправляйте обновления статуса. На invoice.paid отвечайте «Платёж виден, ждём подтверждений»; на invoice.confirmed — выдавайте заказ.
  • Показывайте цену в долларах, а конвертацию оставьте шлюзу. Курс зафиксирован на всё время жизни счёта.
  • Один раз объясните таймер, чтобы пользователи не пугались обратного отсчёта.
  • Добавьте кнопку «Проверить статус», которая запрашивает счёт через API, — пригодится, если пользователь вернётся позже.
  • Вежливо обрабатывайте недоплату. На invoice.underpaid сообщите, сколько не хватает; частичные платежи суммируются до полной суммы.
  • Обрабатывайте истечение. На invoice.expired предложите новый счёт одним нажатием.

Подписки и платные сообщества

Для помесячного доступа создавайте новый счёт к концу каждого периода и отправляйте его как напоминание о продлении за несколько дней. Когда придёт invoice.confirmed, продлите дату доступа пользователя в базе. Если до конца периода оплаты нет — закройте доступ. Криптопереводы инициирует плательщик, поэтому продление — это всегда счёт, который пользователь оплачивает сам: автоматического списания, как с карты, нет.

Совет: после оплаты генерируйте одноразовые ссылки-приглашения в закрытые каналы, а не раздавайте одну постоянную ссылку. Так платное сообщество останется действительно платным.

Чек-лист надёжности

  • Идемпотентность: вебхуки повторяются с нарастающей задержкой в течение нескольких часов, поэтому одно и то же событие может прийти дважды. Перед отправкой чего-либо проверьте, не выдан ли заказ.
  • Проверка подписи: проверяйте X-Mistket-Signature (HMAC-SHA256 от timestamp и «сырого» тела с вашим секретом вебхука), прежде чем доверять событию.
  • Сообщения в чате — не доказательство. Фраза «я оплатил» или скриншот никогда не заменяют вебхук.
  • Белый список IP: ограничьте доступ к API сервером вашего бота в панели мерчанта.
  • Логи: в панели видны журналы доставки вебхуков, ожидаемые и полученные суммы и хеши транзакций для разбора обращений.

Полные примеры кода для подписи и проверки — в статье интеграция API криптовалютных платежей.

Пока нет разработчика? Начните с платёжных ссылок

Если вы ведёте небольшую платную группу вручную, создавайте счета в панели мерчанта и отправляйте ссылку в личных сообщениях. Когда увидите подтверждённую оплату в панели, добавьте участника вручную. Это не масштабируется, зато позволяет проверить цену до разработки бота. Подробнее — в статье платёжные ссылки и счета в криптовалюте.

Играйте по правилам: продавайте только легальные товары и услуги, соблюдайте условия Telegram для ботов и каналов и уточните местные налоговые и регуляторные обязанности по криптовалютному доходу. Платёжный шлюз — это инфраструктура, он не меняет того, что вам разрешено продавать.

С чего начать

Готовы принимать оплату криптовалютой в своём Telegram-боте? Подайте заявку на аккаунт мерчанта через Telegram @mistnetwork, указав ссылку на бота или сообщество и ожидаемый объём. После одобрения API-ключи выдаются в тот же день. Примеры запросов и вебхуков смотрите в разделе для разработчиков, а ключами управляйте через вход для мерчантов.

Частые вопросы

Может ли Telegram-бот принимать оплату в USDT?
Да. Бэкенд бота создаёт счёт через API шлюза, отправляет ссылку на оплату кнопкой и автоматически выдаёт заказ, когда подписанный вебхук подтверждает платёж.
Нужно ли пользователю выходить из Telegram, чтобы оплатить?
Размещённая страница оплаты открывается во встроенном браузере Telegram. Пользователь платит из приложения кошелька или с биржи и возвращается в чат за заказом.
Как бот узнаёт, кто заплатил?
Сохраняйте Telegram ID пользователя вместе с ID заказа и передавайте ID заказа при создании счёта. Вебхук содержит ID заказа, поэтому вы знаете, кому писать.
Можно ли сделать подписку за криптовалюту для платного Telegram-канала?
Да: выставляйте счёт на продление каждый период и продлевайте доступ при получении invoice.confirmed. Автоматического списания у криптовалюты нет, поэтому каждое продление пользователь оплачивает сам.
Какие сети лучше всего подходят для оплаты в ботах?
TRON (TRC-20) и BNB Smart Chain (BEP-20) обычно самые дешёвые и подтверждаются примерно за минуту. mistKET также поддерживает USDT в Ethereum и Arbitrum.

Похожие статьи