Почему в telegram боте на aiogram (paymaent) функции pre_checkout_query, successful_payment могут не вызываться?
Я в ступоре. Уже как только не изгалялся, но pre_checkout_query_handler и successful_payment просто не отрабатывают (понял т. к. print не выдаёт) payment_token есть и подключён к боту (тестовый на сбербанк). Сообщение с кнопкой покупки появляется. Но при попытке нажать на это сообщение, открывается окно "Checkout (Test)" с значком загрузки, картинкой, заголовком и описанием. А после, закрывается.
Код отвечающий за обработку платежа:
PRICES = [LabeledPrice(label='Купить vip',amount=1000)]
@dispatherInstance.message_handler(commands=['buy'])
async def buy_process(message: Message):
print("buy")
await bot.send_invoice(message.chat.id,
title="title",
description="description",
provider_token=PAYMENTS_TOKEN,
currency='RUB',
photo_url="https://upload.wikimedia.org/wikipedia/commons/6/63/Icon_Bird_512x512.png",
photo_height=512,
photo_width=512,
photo_size=512,
need_email=True,
need_phone_number=True,
is_flexible=True,
need_shipping_address=False,
prices=PRICES,
start_parameter='example',
payload='some_invoice',
max_tip_amount=100*500)
@dispatherInstance.pre_checkout_query_handler(lambda query: True)
async def checkout_process(pre_checkout_query: types.PreCheckoutQuery):
print("checkout_process")
await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True)
@dispatherInstance.message_handler(content_types=ContentType.SUCCESSFUL_PAYMENT)
async def successful_payment(message: Message):
print("successful_payment")
await bot.send_message(
message.chat.id,
"thanks"+ str(message)
)
Источник: Stack Overflow на русском