Помогите пожалуйста (уже все перепробовал). Платежи проходят, деньги списываются - всё отлично. Появляется всплывающее сообщение в боте что мол вы оплатили услугу. НО!
Не приходят уведомления о статусе платежа (или я не могу их отловить обработчиком)
pre_checkout_query срабатывает без проблем (платёж проходит):
@for_user_router.pre_checkout_query(lambda query: True)
async def pre_checkout_query(pre_checkout_query: PreCheckoutQuery, bot: Bot):
await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True)
и возвращает (function successful_payment at 0x000001EC4A563920)
А вот этот обработчик не срабатывает:
@for_user_router.message(F.successful_payment)
async def successful_payment(message: Message, state: FSMContext, session: AsyncSession()):
await bot.send_message(message.chat.id, f"Thanks! Payment was successful, "
f"id: {message.successful_payment.provider_payment_charge_id}")
Кто знает, кто сталкивался с этим напишите пожалуйста
upd.
Вопрос вроде как решен (спасибо тебе Михаил Гок), но для этого пришлось регистрировать хэндлер в главном файле app.py через dispatcher, а не через РОУТЕР как все остальные обработчики
Вопрос, почему все хэндлеры через РОУТЕР работают например:
@for_user_router.pre_checkout_query(lambda query: True)
или
@for_user_router.message(CommandStart())
, а вот проверка успешного платежа
@for_user_router.message(F.successful_payment)
не работает?
Буду благодарен каждому за пояснение данного вопроса