Делаю оплату в боте. Хочу. чтобы после успешной оплаты удалялось сообщение с кнопкой оплаты. Пробовал по ID сообщения через бота, не получается:
@router.message(
StateFilter(FSMRegistration.plan1), lambda x: x.text.isdigit() and 500 <= int(x.text) <= 6000
)
async def process_plan1_pay(message: Message, state: FSMContext) -> None:
prices = [LabeledPrice(label="XTR", amount=1)]
await state.update_data(m_id=message.message_id)
await message.answer_invoice(
title="то, что продаю",
description="описание",
prices=prices,
provider_token="",
photo_url= "https://0_1.jpg",
photo_height= 1620,
photo_width= 1080,
payload="channel_support",
currency="XTR",
reply_markup=pay_10_kb(),
)
await state.set_state(FSMRegistration.plan1_success)
@router.pre_checkout_query()
async def on_pre_checkout_query(
pre_checkout_query: PreCheckoutQuery
):
await pre_checkout_query.answer(ok=True)
@router.message(StateFilter(FSMRegistration.plan1_success), F.successful_payment)
async def on_successful_payment(message: Message, state: FSMContext, database:DatabaseMethods):
donate=int(message.successful_payment.total_amount)
data = await state.get_data()
await message.delete()
await message.bot.delete_message(chat_id=message.from_user.id, message_id=data["m_id"])
Причем, если следующим сообщением отправить клавиатуру, и по коллбэку удалить предыдущее - то сообщение с оплатой удаляется.