From 4cfb1dd38faadf6220b28c2aa2bf4420baacb1cb Mon Sep 17 00:00:00 2001 From: Egor Date: Wed, 4 Feb 2026 04:49:14 +0300 Subject: [PATCH] Add files via upload --- app/handlers/stars_payments.py | 49 ---------------------------------- app/handlers/webhooks.py | 17 ------------ 2 files changed, 66 deletions(-) diff --git a/app/handlers/stars_payments.py b/app/handlers/stars_payments.py index 2b2bc544..a55d4efe 100644 --- a/app/handlers/stars_payments.py +++ b/app/handlers/stars_payments.py @@ -10,7 +10,6 @@ from app.database.crud.user import get_user_by_telegram_id from app.external.telegram_stars import TelegramStarsService from app.localization.loader import DEFAULT_LANGUAGE from app.localization.texts import get_texts -from app.middlewares.global_error import schedule_error_notification from app.services.payment_service import PaymentService @@ -114,10 +113,6 @@ async def _handle_wheel_spin_payment( except Exception as e: logger.error(f'Ошибка обработки wheel spin payment: {e}', exc_info=True) - if message.bot: - schedule_error_notification( - message.bot, e, f'Wheel spin payment error: user={user.id if user else "unknown"}' - ) await message.answer( '❌ Произошла ошибка при обработке спина. Обратитесь в поддержку.', ) @@ -144,12 +139,6 @@ async def _handle_trial_payment( parts = payload.split('_') if len(parts) < 2: logger.error(f'Невалидный trial payload: {payload}') - if message.bot: - schedule_error_notification( - message.bot, - ValueError(f'Invalid trial payload: {payload}'), - f'Trial payment: invalid payload format, user={user.id if user else "unknown"}', - ) await message.answer( '❌ Ошибка: неверный формат платежа. Обратитесь в поддержку.', ) @@ -159,12 +148,6 @@ async def _handle_trial_payment( subscription_id = int(parts[1]) except ValueError: logger.error(f'Невалидный subscription_id в trial payload: {payload}') - if message.bot: - schedule_error_notification( - message.bot, - ValueError(f'Invalid subscription_id in payload: {payload}'), - f'Trial payment: invalid subscription_id, user={user.id if user else "unknown"}', - ) await message.answer( '❌ Ошибка: неверный ID подписки. Обратитесь в поддержку.', ) @@ -195,12 +178,6 @@ async def _handle_trial_payment( if not subscription: logger.error(f'Не удалось активировать триальную подписку {subscription_id} для пользователя {user.id}') - if message.bot: - schedule_error_notification( - message.bot, - RuntimeError(f'Failed to activate trial subscription {subscription_id}'), - f'Trial activation failed: subscription_id={subscription_id}, user={user.id}', - ) # Возвращаем деньги на баланс from app.database.crud.user import add_user_balance @@ -223,12 +200,6 @@ async def _handle_trial_payment( except Exception as rw_error: logger.error(f'Ошибка создания пользователя RemnaWave для триала: {rw_error}') # Не откатываем подписку, просто логируем - RemnaWave может быть временно недоступен - if message.bot: - schedule_error_notification( - message.bot, - rw_error, - f'RemnaWave trial user creation failed: subscription={subscription_id}, user={user.id}', - ) await db.commit() await db.refresh(user) @@ -263,8 +234,6 @@ async def _handle_trial_payment( except Exception as e: logger.error(f'Ошибка обработки trial payment: {e}', exc_info=True) - if message.bot: - schedule_error_notification(message.bot, e, f'Trial payment error: user={user.id if user else "unknown"}') await message.answer( '❌ Произошла ошибка при активации пробной подписки. Обратитесь в поддержку.', ) @@ -310,8 +279,6 @@ async def handle_pre_checkout_query(query: types.PreCheckoutQuery): texts = get_texts(user.language or DEFAULT_LANGUAGE) except Exception as db_error: logger.error(f'Ошибка подключения к БД в pre_checkout_query: {db_error}') - if query.bot: - schedule_error_notification(query.bot, db_error, f'Pre-checkout DB error: user={query.from_user.id}') await query.answer( ok=False, error_message=texts.t( @@ -326,8 +293,6 @@ async def handle_pre_checkout_query(query: types.PreCheckoutQuery): except Exception as e: logger.error(f'Ошибка в pre_checkout_query: {e}', exc_info=True) - if query.bot: - schedule_error_notification(query.bot, e, f'Pre-checkout query error: user={query.from_user.id}') await query.answer( ok=False, error_message=texts.t( @@ -356,12 +321,6 @@ async def handle_successful_payment(message: types.Message, db: AsyncSession, st if not user: logger.error(f'Пользователь {user_id} не найден при обработке Stars платежа') - if message.bot: - schedule_error_notification( - message.bot, - RuntimeError(f'User {user_id} not found for Stars payment'), - f'Stars payment: user not found, telegram_id={user_id}', - ) await message.answer( texts.t( 'STARS_PAYMENT_USER_NOT_FOUND', @@ -469,12 +428,6 @@ async def handle_successful_payment(message: types.Message, db: AsyncSession, st ) else: logger.error(f'Ошибка обработки Stars платежа для пользователя {user.id}') - if message.bot: - schedule_error_notification( - message.bot, - RuntimeError(f'Stars payment processing failed for user {user.id}'), - f'Stars payment enrollment error: user={user.id}, stars={payment.total_amount}', - ) await message.answer( texts.t( 'STARS_PAYMENT_ENROLLMENT_ERROR', @@ -485,8 +438,6 @@ async def handle_successful_payment(message: types.Message, db: AsyncSession, st except Exception as e: logger.error(f'Ошибка в successful_payment: {e}', exc_info=True) - if message.bot: - schedule_error_notification(message.bot, e, f'Stars successful_payment error: user={user_id}') await message.answer( texts.t( 'STARS_PAYMENT_PROCESSING_ERROR', diff --git a/app/handlers/webhooks.py b/app/handlers/webhooks.py index 1f428c2b..87ce9bf8 100644 --- a/app/handlers/webhooks.py +++ b/app/handlers/webhooks.py @@ -9,7 +9,6 @@ from app.database.crud.user import add_user_balance, get_user_by_id from app.database.database import AsyncSessionLocal from app.database.models import PaymentMethod, TransactionType from app.external.tribute import TributeService -from app.middlewares.global_error import schedule_error_notification logger = logging.getLogger(__name__) @@ -40,12 +39,6 @@ async def tribute_webhook(request): if not processed_data: logger.error('Ошибка обработки Tribute webhook') - if _bot_instance: - schedule_error_notification( - _bot_instance, - ValueError('Invalid webhook data'), - 'Tribute webhook: processed_data is None', - ) return web.Response(status=400, text='Invalid webhook data') async with AsyncSessionLocal() as db: @@ -86,15 +79,11 @@ async def tribute_webhook(request): except Exception as e: logger.error(f'Ошибка обработки Tribute webhook: {e}') - if _bot_instance: - schedule_error_notification(_bot_instance, e, 'Tribute webhook DB error') await db.rollback() return web.Response(status=500, text='Internal error') except Exception as e: logger.error(f'Ошибка в Tribute webhook: {e}') - if _bot_instance: - schedule_error_notification(_bot_instance, e, 'Tribute webhook general error') return web.Response(status=500, text='Internal error') @@ -146,14 +135,10 @@ async def handle_successful_payment(message: types.Message): except Exception as e: logger.error(f'Ошибка обработки Stars платежа: {e}') - if message.bot: - schedule_error_notification(message.bot, e, 'Stars payment DB error') await db.rollback() except Exception as e: logger.error(f'Ошибка в обработчике Stars платежа: {e}') - if message.bot: - schedule_error_notification(message.bot, e, 'Stars payment general error') async def handle_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery): @@ -163,6 +148,4 @@ async def handle_pre_checkout_query(pre_checkout_query: types.PreCheckoutQuery): except Exception as e: logger.error(f'Ошибка в pre-checkout query: {e}') - if pre_checkout_query.bot: - schedule_error_notification(pre_checkout_query.bot, e, 'Pre-checkout query error') await pre_checkout_query.answer(ok=False, error_message='Ошибка обработки платежа')