From cf5380140872815a63d577daa9a1bdbbd2baca7a Mon Sep 17 00:00:00 2001 From: Egor Date: Thu, 8 Jan 2026 03:18:56 +0300 Subject: [PATCH] Update freekassa.py --- app/services/payment/freekassa.py | 35 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/app/services/payment/freekassa.py b/app/services/payment/freekassa.py index b688a8aa..5f510ccd 100644 --- a/app/services/payment/freekassa.py +++ b/app/services/payment/freekassa.py @@ -90,14 +90,30 @@ class FreekassaPaymentMixin: } try: - # Генерируем URL для оплаты - payment_url = freekassa_service.build_payment_url( - order_id=order_id, - amount=amount_rubles, - currency=currency, - email=email, - lang=language, - ) + # Выбираем способ создания платежа: API или форма + if settings.FREEKASSA_USE_API: + # Используем API для создания заказа (нужно для NSPK СБП) + payment_url = await freekassa_service.create_order_and_get_url( + order_id=order_id, + amount=amount_rubles, + currency=currency, + email=email, + payment_system_id=settings.FREEKASSA_PAYMENT_SYSTEM_ID, + ) + logger.info( + "Freekassa API: создан заказ order_id=%s, url=%s", + order_id, + payment_url, + ) + else: + # Генерируем URL для формы оплаты (стандартный способ) + payment_url = freekassa_service.build_payment_url( + order_id=order_id, + amount=amount_rubles, + currency=currency, + email=email, + lang=language, + ) # Импортируем CRUD модуль freekassa_crud = import_module("app.database.crud.freekassa") @@ -116,11 +132,12 @@ class FreekassaPaymentMixin: ) logger.info( - "Freekassa: создан платеж order_id=%s, user_id=%s, amount=%s %s", + "Freekassa: создан платеж order_id=%s, user_id=%s, amount=%s %s, use_api=%s", order_id, user_id, amount_rubles, currency, + settings.FREEKASSA_USE_API, ) return {