Нужна помощь с настройкой оплаты в телеграм через
invoice. Использую
ЮКасса. Оплата через тестовый магазин. Live магазин не пробовал.
Вот мой код:
@user_router.message(Command('buy'))
async def send_invoice(message: Message):
await bot.send_invoice(
chat_id=message.chat.id,
title="Test Payment",
description="Testing payments",
payload="test_payload",
provider_token=YOO_TOKEN,
currency="RUB",
prices=[LabeledPrice(label="Subscription", amount=20000)],
start_parameter="test-payment"
)
@user_router.pre_checkout_query()
async def handle_pre_checkout_query(query: PreCheckoutQuery):
try:
await query.answer(ok=True)
except Exception as e:
print(f"Error handling pre-checkout query: {e}")
@user_router.message(F.successful_payment)
async def handle_successful_payment(message: Message):
payment_info = message.successful_payment
print(f"Payment successful!")
print(f"Currency: {payment_info.currency}")
print(f"Amount: {payment_info.total_amount / 100:.2f} {payment_info.currency}")
print(f"Invoice Payload: {payment_info.invoice_payload}")
await message.answer("Спасибо за оплату! Ваш платеж успешно обработан.")
Чтобы я не делал, как бы не менял функцию
handle_pre_checkout_query ничего не работает.
Выполнение кода доходит до
handle_pre_checkout_query, там всё выполняется и дальше не идет.
В окне оплаты в телеграмм просто висит загрузка а потом вылезает сообщение:
Что я делаю не так?