Прием платежей через телеграмм бот (ЮМАНИ)
Друзья поделитесь знаниями. Топчусь на одном месте, не могу задачку решить. Делаю прием платежей в боте телеграмм. Проблема в том, что после ввода номера карты о нажатии на кнопку оплатить бот зависает секунд на 10 (видимо именно это врем дается на ответ запроса телеграмм) и появляется ошибка:
Фрагменты кода.
При нажатии пользователем на определенную кнопку направляю инфойс на оплату:
await bot.send_invoice(callback.message.chat.id, 'Текст1', 'Текст2', 'invoice', payment_token,'RUB', [types.LabeledPrice('Оплата справки1', 100 * 100)])
Начитавшись (конечно громко сказано) всякой документации понял, что когда пользователь нажимает "Оплатить", бот получает от телеграма запрос предпроверки (pre_checkout_query). Бот должен ответить на этот запрос, используя метод answerPreCheckoutQuery, чтобы подтвердить, что все детали платежа корректны.
Тут собственно пытаюсь словить запрос и ответить на него:
@dp.pre_checkout_query_handler(lambda query: True)
async def pre_checkout_query(pre_checkout_q: types.PreCheckoutQuery):
await bot.answer_pre_checkout_query(pre_checkout_q.id, ok=True)
Ну и если бы платеж проходил успешно, то сообщал бы пользователю:
@dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT)
async def payment(message: types.Message):
await message.answer(f'Оплата прошла. Подробности: {message.successful_payment.order_info}')
Что делаю не так? С удовольствием приму любые советы, помощь, критику.