From 715520320de6834cc715bc20496a2e97ee409391 Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 26 Jan 2026 19:13:59 +0300 Subject: [PATCH] Add files via upload --- app/services/payment/heleket.py | 4 ++++ app/services/payment/wata.py | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/services/payment/heleket.py b/app/services/payment/heleket.py index ffff7b90..9149d0c6 100644 --- a/app/services/payment/heleket.py +++ b/app/services/payment/heleket.py @@ -362,6 +362,10 @@ class HeleketPaymentMixin: await db.commit() await db.refresh(user) + # Перезагружаем пользователя с зависимостями после коммита, + # чтобы избежать lazy load в async-контексте (MissingGreenlet) + user = await get_user_by_id(db, user.id) or user + if getattr(self, 'bot', None): topup_status = '🆕 Первое пополнение' if was_first_topup else '🔄 Пополнение' referrer_info = format_referrer_info(user) diff --git a/app/services/payment/wata.py b/app/services/payment/wata.py index 3507034a..98c2f760 100644 --- a/app/services/payment/wata.py +++ b/app/services/payment/wata.py @@ -472,7 +472,10 @@ class WataPaymentMixin: user.balance_kopeks += payment.amount_kopeks user.updated_at = datetime.utcnow() await db.commit() - await db.refresh(user) + user = await payment_module.get_user_by_id(db, user.id) + if not user: + logger.error('Пользователь %s не найден после коммита WATA', payment.user_id) + return payment promo_group = user.get_primary_promo_group() subscription = getattr(user, 'subscription', None)