Задать вопрос
@IAMVanilka

Почему не работает оплата через invoice в Aiogram?

Нужна помощь с настройкой оплаты в телеграм через 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, там всё выполняется и дальше не идет.

В окне оплаты в телеграмм просто висит загрузка а потом вылезает сообщение:
67387e80993e7369840787.png

Что я делаю не так?
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@IAMVanilka Автор вопроса
Вопрос решён! Проблема была на стороне ЮКассы. Подключил тестовый Сбербанк и всё СРАЗУ заработало!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы