From ab488ed0a3110d8ed7296b27eaa47d483d4dda9a Mon Sep 17 00:00:00 2001 From: Zakhar Izmaylov Date: Fri, 15 Nov 2024 17:28:06 +0300 Subject: [PATCH] Fix pay stars --- handlers/donate.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/handlers/donate.py b/handlers/donate.py index ea40e3ae..c9689c32 100644 --- a/handlers/donate.py +++ b/handlers/donate.py @@ -12,6 +12,7 @@ from config import RUB_TO_XTR class DonateState(StatesGroup): entering_donate_amount = State() waiting_for_donate_confirmation = State() + waiting_for_donate_payment = State() router = Router() @@ -91,6 +92,7 @@ async def process_donate_amount_input(message: types.Message, state: FSMContext) currency="XTR", reply_markup=builder.as_markup(), ) + await state.set_state(DonateState.waiting_for_donate_payment) except Exception as e: logger.error(f"Ошибка при создании доната: {e}") await message.answer("Произошла ошибка при создании доната.") @@ -98,12 +100,12 @@ async def process_donate_amount_input(message: types.Message, state: FSMContext) await message.answer("Некорректная сумма. Пожалуйста, введите сумму еще раз:") -@router.pre_checkout_query() +@router.pre_checkout_query(DonateState.waiting_for_donate_payment) async def on_pre_checkout_query(pre_checkout_query: PreCheckoutQuery): await pre_checkout_query.answer(ok=True) -@router.message(F.successful_payment) +@router.message(F.successful_payment,DonateState.waiting_for_donate_payment) async def on_successful_donate(message: types.Message, state: FSMContext): try: user_id = int(message.from_user.id) @@ -133,6 +135,7 @@ async def on_successful_donate(message: types.Message, state: FSMContext): ) await state.update_data(last_message_id=sent_message.message_id) + await state.clear() except ValueError as e: logger.error(f"Ошибка конвертации user_id или amount: {e}")