Когда 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 и заказ должны быть связаны без ручных догадок.