Пытаюсь прикрутить к боту оплату через Stars (бот пишу впервые, никакой оплаты раньше не делал). Использую aiogram 3.18.0, бот на вебхуках. Появляется сообщение-подтверждение об оплате, но после нажатия на кнопку "оплатить" 10 секунд висит ожидание и сообщение, что ответ от бота не получен.
Судя по логам не приходит запрос в pre_checkout_query.
Ничего не получается, может кто знает, в чем проблема (
может как-то надо самого бота настроить предварительно)?
Пробовал убирать по максимуму все другие роутеры/хендлеры, чтобы они не перехватывали ивент - не помогло.
Пробовал делать
router.pre_checkout_query(lambda query: True) - не помогло.
Роутер конечно же регистрируется в DP, все остальные команды и коллбеки из этого роутера успешно работают.
Вот пример из кода:
router = Router()
@router.pre_checkout_query()
async def pre_checkout_handler(pre_checkout_query: PreCheckoutQuery):
logging.info("Запускаю pre_checkout_handler") #Этот лог не появляется.
await pre_checkout_query.answer(ok = True)
@router.message(F.successful_payment)
async def success_payment_handler(message: Message):
await message.answer(text="Оплата успешно принята! Подписка продлена на 1 месяц.")
@router.message(Command("paysupport"))
async def pay_support_handler(message: Message):
logging.info("Запускаю pay_support_handler") #А этот появляется, если вызвать команду :)
await message.answer(
text="Для возврата средств, напишите в поддержку")
async def show_payment(message_or_callback, is_callback: bool): #метод без аттрибута, потому что вызывается из другого места.
...
prices = [LabeledPrice(label="XTR", amount=450)]
if is_callback:
await message_or_callback.message.answer_invoice(
title="Продлить подписку",
description="Оплата подписки на 1 месяц",
prices=prices,
provider_token="",
payload="month_payment",
currency="XTR"
)
await message_or_callback.answer()
else:
await message_or_callback.answer_invoice(
title="Продлить подписку",
description="Оплата подписки на 1 месяц",
prices=prices,
provider_token="",
payload="month_payment",
currency="XTR"
)
Если кто-то знает тайну, что нужно дохимичить - буду безумно благодарен!