Не могу отследить удачную оплату в aiogram 3.4
помогите не понимаю почему не получается отследить оплату
PRICE = LabeledPrice(label="Подписка на 1 месяц", amount=500*100) # в копейках (руб)
async def sub_bay(user_id):
await bot.send_invoice(user_id,
title="Подписка на бота",
description="Активация подписки на бота на 1 месяц",
provider_token=payments,
currency="rub",
photo_url="https://www.aroged.com/wp-content/uploads/2022/06/Telegram-has-a-premium-subscription.jpg",
photo_width=416,
photo_height=234,
photo_size=416,
is_flexible=False,
prices=[PRICE],
start_parameter="one-month-subscription",
payload="test-invoice-payload")
@router.pre_checkout_query()
async def pre_checkout_query(pre_checkout_query: PreCheckoutQuery, bot: Bot):
user_id = pre_checkout_query.from_user.id
local_db = Database('./database/bot.db')
res = local_db.test_sub(user_id)
local_db.close()
print(res[0])
if res[0] == 'False':
await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True)
else:
await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=False, error_message='<b>У вас уже есть подписка</b>')
await bot.send_message(user_id, 'У вас уже есть подписка')
@router.message(F.content_types == ContentType.SUCCESSFUL_PAYMENT)
async def successful_payment(message: Message):
print('test SUCCESSFUL_PAYMENT')
Ответы (1 шт):
Автор решения: Andrey comp
→ Ссылка
Правильная реализация.
@router.message(F.successful_payment)
async def successful_payment(message: Message):
print('test SUCCESSFUL_PAYMENT')