Когда Telegram Payments не работает, пользователь доходит до оплаты в боте, но счет не открывается, платеж не проходит или заказ не меняет статус после оплаты.

Для платных консультаций, товаров, подписок и заявок это прямой стопор продаж. Важно проверить не только кнопку оплаты, но и весь платежный сценарий.

Коротко: нужно проверить invoice, provider token, pre_checkout_query и обработку successful_payment.

Почему это ломается

Оплата ломается из-за неверного provider token, неподдерживаемой валюты, неправильной суммы в минимальных единицах, ошибки shipping, отсутствия ответа на pre_checkout_query, проблем webhook или того, что successful_payment не связывается с заказом.

Что проверяю в первую очередь

  • правильный ли provider token используется
  • корректно ли формируется sendInvoice
  • отвечает ли бот на pre_checkout_query
  • приходит ли successful_payment
  • меняется ли статус заказа после оплаты

Как я это чиню

Я проверяю оплату как транзакционный сценарий: счет, подтверждение Telegram, платежный провайдер, webhook, заказ и уведомление пользователю.

  • исправляю параметры sendInvoice
  • настраиваю обработку pre_checkout_query
  • проверяю webhook и логи платежей
  • связываю successful_payment с заказом
  • добавляю безопасную проверку повторных уведомлений

Что подготовить перед обращением

  • username бота
  • тестовый товар или услугу
  • ошибку при оплате
  • provider token или доступ к настройкам без публикации в чате
  • логи webhook

Как выглядит нормальный результат

Пользователь должен получить счет, оплатить его, а бот должен корректно подтвердить платеж и обновить заказ без дублей.

Чего лучше не делать

Не отмечайте заказ оплаченным до получения подтвержденного successful_payment. Иначе можно создать оплаченный статус без реальной оплаты.

Вопросы и ответы

Можно ли тестировать оплату без реальных списаний?

Зависит от провайдера и тестового режима. Обычно можно настроить тестовый сценарий.

Почему счет открывается, но платеж не завершается?

Нужно смотреть ответ провайдера и обработку pre_checkout_query.

Что делать, если оплата прошла, а заказ не обновился?

Проверить successful_payment, webhook и связь платежного payload с заказом.

Можно ли принимать оплату за услуги?

Да, если это разрешено правилами Telegram и платежного провайдера для вашей категории.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот или лог ошибки, и я подскажу, с чего безопасно начать исправление.

Итог

Telegram Payments требует точной цепочки: invoice, pre-checkout, провайдер, successful_payment и заказ должны быть связаны без ручных догадок.