diff --git a/app/handlers/balance/kassa_ai.py b/app/handlers/balance/kassa_ai.py index 4c73ce33..7f7730e2 100644 --- a/app/handlers/balance/kassa_ai.py +++ b/app/handlers/balance/kassa_ai.py @@ -18,11 +18,7 @@ from app.utils.decorators import error_handler logger = structlog.get_logger(__name__) -KASSA_AI_SUB_METHODS = { - 'kassa_ai_sbp': {'payment_system_id': 44}, - 'kassa_ai_card': {'payment_system_id': 36}, -} -KASSA_AI_PAYMENT_METHODS = {'kassa_ai', 'kassa_ai_sbp', 'kassa_ai_card'} +from app.services.kassa_ai_service import KASSA_AI_SUB_METHODS async def _create_kassa_ai_payment_and_respond( @@ -398,6 +394,10 @@ async def start_kassa_ai_sbp_topup( """Start KassaAI SBP top-up process.""" texts = get_texts(db_user.language) + if not settings.is_kassa_ai_sbp_enabled(): + await callback.answer(texts.t('KASSA_AI_NOT_AVAILABLE', 'KassaAI СБП временно недоступен'), show_alert=True) + return + if getattr(db_user, 'restriction_topup', False): reason = getattr(db_user, 'restriction_reason', None) or 'Действие ограничено администратором' support_url = settings.get_support_contact_url() @@ -502,6 +502,10 @@ async def start_kassa_ai_card_topup( """Start KassaAI Card top-up process.""" texts = get_texts(db_user.language) + if not settings.is_kassa_ai_card_enabled(): + await callback.answer(texts.t('KASSA_AI_NOT_AVAILABLE', 'KassaAI Карта временно недоступна'), show_alert=True) + return + if getattr(db_user, 'restriction_topup', False): reason = getattr(db_user, 'restriction_reason', None) or 'Действие ограничено администратором' support_url = settings.get_support_contact_url() diff --git a/app/services/kassa_ai_service.py b/app/services/kassa_ai_service.py index 3b37f838..bb51e35a 100644 --- a/app/services/kassa_ai_service.py +++ b/app/services/kassa_ai_service.py @@ -14,6 +14,12 @@ from app.config import settings logger = structlog.get_logger(__name__) +# Sub-method to payment_system_id mapping +KASSA_AI_SUB_METHODS = { + "kassa_ai_sbp": {"payment_system_id": 44}, + "kassa_ai_card": {"payment_system_id": 36}, +} + # Кэш для публичного IP _cached_public_ip: str | None = None _ip_fetch_lock = asyncio.Lock() diff --git a/app/services/payment_service.py b/app/services/payment_service.py index e0d59095..63e140b2 100644 --- a/app/services/payment_service.py +++ b/app/services/payment_service.py @@ -671,7 +671,7 @@ class PaymentService( logger.warning('KassaAI is not enabled, cannot create guest payment') return None - from app.handlers.balance.kassa_ai import KASSA_AI_SUB_METHODS + from app.services.kassa_ai_service import KASSA_AI_SUB_METHODS sub = KASSA_AI_SUB_METHODS.get(payment_method) ps_id = sub['payment_system_id'] if sub else None