
Комментарии 3
Спасибо за пример с оплатой. Самый интересный момент - куда эти старсы девать? Я в телеге принимаю оплату на свой расчетный счет рублями, звезды не мой путь.
Для MVP — хороший пример. Но в текущем варианте pre_checkout_query всегда подтверждается через ok=True, а количество запросов определяется из invoice_payload.
В проде, возможно, стоит сверять данные платежа с записью о заказе в БД: пользователя, валюту и сумму. telegram_payment_charge_id также стоит хранить как уникальный — иначе при повторной обработке одного и того же update баланс пользователя может увеличиться дважды.
С платными подписками многие проходили похожий путь: принять платеж оказывалось самой простой частью. Дальше начинались возвраты, продления, сверка платежей и автоматическая выдача или отзыв доступа.
Было бы интересно увидеть продолжение про идемпотентность, refundStarPayment и обработку жизненного цикла подписки. Планируете развивать пример в эту сторону?
Пишем Telegram-бота на Python: прикручиваем оплату Telegram Stars, систему промокодов и OpenAI