Rikisan
@Rikisan
техник-программист

Как удалить send_invoice после завершения оплаты в aiogram?

Как удалить send_invoice после завершения оплаты в aiogram?
Есть функция создания инвойса:
dp.register_callback_query_handler(start_pay, lambda call: call.data in ["yookassa_pay", "sber_pay"])
start_pay

async def start_pay(call: types.CallbackQuery):
    keyboard = types.InlineKeyboardMarkup()
    keyboard.add(types.InlineKeyboardButton(text='Оплатить', pay=True))
    keyboard.add(types.InlineKeyboardButton(text='Назад', callback_data=f"select_pay_purchase"))
    pay = call.data
    if pay == "yookassa_pay":
        title = ""
        description = ""
    elif pay == "sber_pay":
        title = ""
        description = ""
    await bot.delete_message(call.message.chat.id, call.message.message_id)
    user_id = int(db_hendlers.get_user_by_username(call.message.chat.username).get('id'))
    items = db_hendlers.get_basked(user_id)
    PRICE = []
    for item in items:
        product_id = item.get('product_id')
        count = item.get('count')
        product = db_hendlers.get_product(product_id)
        product_name = product.get('name')
        product_price = round(product.get('price'), 2)
        total_price = int(product_price * count * 100)
        PRICE.append(types.LabeledPrice(label=f"{product_name}", amount=total_price))
    await bot.send_invoice(
        call.message.chat.id,
        title=title,
        description=description,
        provider_token=PAY.get(pay),
        currency="rub",
        is_flexible=False, 
        prices=PRICE,
        start_parameter="test_start_parameter",
        payload="test_invoice",
        reply_markup=keyboard
    )


На этапе подтверждения хотелось бы удалить инвойс
dp.register_pre_checkout_query_handler(process_pre_checkout_query, lambda query: True)
async def process_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery):
    await bot.answer_pre_checkout_query(pre_checkout_query_id=pre_checkout_query.id, ok=True)
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
@EugeneDragun
Нужно обработать SUCCESSFUL_PAYMENT и удалить сообщение.message_id - 1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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