From c7d5ff94c0ed1c78655b2d031d8e4f0c9a643cbf Mon Sep 17 00:00:00 2001 From: Vladless Date: Fri, 15 Nov 2024 13:51:12 +0300 Subject: [PATCH] fix message delete --- handlers/payments/cryprobot_pay.py | 38 +++++++++++++++++------------- handlers/payments/stars_pay.py | 32 +++++++++++++------------ 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/handlers/payments/cryprobot_pay.py b/handlers/payments/cryprobot_pay.py index cb933c12..1f47613e 100644 --- a/handlers/payments/cryprobot_pay.py +++ b/handlers/payments/cryprobot_pay.py @@ -114,30 +114,35 @@ async def process_amount_selection( data = callback_query.data.split("|", 1) if len(data) != 2: - await send_message_with_deletion( - callback_query.from_user.id, - "Неверные данные для выбора суммы.", - state=state, - message_key="amount_error_message_id", - ) + try: + await callback_query.message.delete() + except Exception as e: + logger.error(f"Ошибка при удалении сообщения: {e}") + + await callback_query.message.answer("Неверные данные для выбора суммы.") return amount_str = data[1] try: amount = int(amount_str) except ValueError: - await send_message_with_deletion( - callback_query.from_user.id, - "Некорректная сумма.", - state=state, - message_key="amount_error_message_id", - ) + try: + await callback_query.message.delete() + except Exception as e: + logger.error(f"Ошибка при удалении сообщения: {e}") + + await callback_query.message.answer("Некорректная сумма.") return await state.update_data(amount=amount) await state.set_state(ReplenishBalanceState.waiting_for_payment_confirmation_crypto) try: + try: + await callback_query.message.delete() + except Exception as e: + logger.error(f"Ошибка при удалении сообщения: {e}") + invoice = await crypto.create_invoice( asset="USDT", amount=str(int(amount // RUB_TO_USDT)), @@ -151,20 +156,21 @@ async def process_amount_selection( InlineKeyboardButton(text="Пополнить", url=invoice.bot_invoice_url) ) builder.row(InlineKeyboardButton(text="⬅️ Назад", callback_data="pay")) - await callback_query.message.edit_text( + await bot.send_message( + chat_id=callback_query.from_user.id, text=f"Вы выбрали пополнение на {amount} рублей.", reply_markup=builder.as_markup(), ) else: - await send_message_with_deletion( - callback_query.from_user.id, "Ошибка при создании платежа.", state=state - ) + await callback_query.message.answer("Ошибка при создании платежа.") except Exception as e: logger.error(f"Ошибка при создании платежа: {e}") await callback_query.message.answer("Произошла ошибка при создании платежа.") + await callback_query.answer() + async def send_payment_success_notification(user_id: int, amount: float): try: builder = InlineKeyboardBuilder() diff --git a/handlers/payments/stars_pay.py b/handlers/payments/stars_pay.py index a5a8c40b..3af0ff0c 100644 --- a/handlers/payments/stars_pay.py +++ b/handlers/payments/stars_pay.py @@ -86,9 +86,7 @@ async def process_callback_pay_stars( await add_connection(tg_id, balance=0.0, trial=0) try: - await bot.delete_message( - chat_id=tg_id, message_id=callback_query.message.message_id - ) + await callback_query.message.delete() except Exception as e: logger.error(f"Не удалось удалить сообщение: {e}") @@ -109,30 +107,32 @@ async def process_amount_selection( data = callback_query.data.split("|", 1) if len(data) != 2: - await send_message_with_deletion( - callback_query.from_user.id, - "Неверные данные для выбора суммы.", - state=state, - message_key="amount_error_message_id", - ) + try: + await callback_query.message.delete() + except Exception as e: + logger.error(f"Ошибка при удалении сообщения: {e}") + + await callback_query.message.answer("Неверные данные для выбора суммы.") return amount_str = data[1] try: amount = int(amount_str) except ValueError: - await send_message_with_deletion( - callback_query.from_user.id, - "Некорректная сумма.", - state=state, - message_key="amount_error_message_id", - ) + try: + await callback_query.message.delete() + except Exception as e: + logger.error(f"Ошибка при удалении сообщения: {e}") + + await callback_query.message.answer("Некорректная сумма.") return await state.update_data(amount=amount) await state.set_state(ReplenishBalanceState.waiting_for_payment_confirmation_stars) try: + await callback_query.message.delete() + builder = InlineKeyboardBuilder() builder.row( InlineKeyboardButton(text="Пополнить", pay=True), @@ -140,6 +140,7 @@ async def process_amount_selection( builder.row( InlineKeyboardButton(text="⬅️ Назад", callback_data="pay"), ) + await callback_query.message.answer_invoice( title=f"Вы выбрали пополнение на {amount} рублей.", description=f"Вы выбрали пополнение на {amount} рублей.", @@ -152,6 +153,7 @@ async def process_amount_selection( except Exception as e: logger.error(f"Ошибка при создании платежа: {e}") await callback_query.message.answer("Произошла ошибка при создании платежа.") + await callback_query.answer()