diff --git a/.env.example b/.env.example index 271b9d1..5a98439 100644 --- a/.env.example +++ b/.env.example @@ -50,6 +50,7 @@ FREEKASSA_MERCHANT_ID=your_shop_id # FREEKASSA_API_KEY=your_api_key # API key for REST requests FREEKASSA_SECOND_SECRET=your_second_secret # Secret word #2 (used to verify notifications) FREEKASSA_PAYMENT_IP= # Public IP address reported to FreeKassa +FREEKASSA_PAYMENT_METHOD_ID=44 # Payment method ID, you can get it from https://merchant.freekassa.net/settings/currencies # CryptoBot Payment Gateway Configuration CRYPTOPAY_TOKEN= # API token for CryptoPay diff --git a/README.md b/README.md index 5f2a2e0..08e5408 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ | `FREEKASSA_SECOND_SECRET` | Секретное слово №2 — используется для проверки уведомлений от FreeKassa. | | `FREEKASSA_PAYMENT_URL` | (Опционально, legacy SCI) Базовый URL платёжной формы FreeKassa. По умолчанию `https://pay.freekassa.ru/`. | | `FREEKASSA_PAYMENT_IP` | Внешний IP вашего сервера, который будет передаваться в запрос оплаты. | + | `FREEKASSA_PAYMENT_METHOD_ID` | ID метода оплаты через магазин FreeKassa. По умолчанию `44`. | | `STARS_ENABLED` | Включить/выключить Telegram Stars (`true`/`false`). | | `TRIBUTE_ENABLED`| Включить/выключить Tribute (`true`/`false`). | diff --git a/bot/handlers/user/subscription/payments.py b/bot/handlers/user/subscription/payments.py index d9815cb..1c21005 100644 --- a/bot/handlers/user/subscription/payments.py +++ b/bot/handlers/user/subscription/payments.py @@ -881,10 +881,10 @@ async def pay_fk_callback_handler( months=months, amount=price_rub, currency=freekassa_service.default_currency, - method_code=44, + payment_method_id=freekassa_service.payment_method_id, ip_address=freekassa_service.server_ip, extra_params={ - "us_method": 44, + "us_method": freekassa_service.payment_method_id, }, ) diff --git a/bot/services/freekassa_service.py b/bot/services/freekassa_service.py index 662b379..b0b565e 100644 --- a/bot/services/freekassa_service.py +++ b/bot/services/freekassa_service.py @@ -45,6 +45,7 @@ class FreeKassaService: self.second_secret: Optional[str] = settings.FREEKASSA_SECOND_SECRET self.default_currency: str = (settings.DEFAULT_CURRENCY_SYMBOL or "RUB").upper() self.server_ip: Optional[str] = settings.FREEKASSA_PAYMENT_IP + self.payment_method_id: Optional[int] = settings.FREEKASSA_PAYMENT_METHOD_ID self.api_base_url: str = "https://api.fk.life/v1" self._timeout = ClientTimeout(total=15) diff --git a/config/settings.py b/config/settings.py index f7a86a9..561f66c 100644 --- a/config/settings.py +++ b/config/settings.py @@ -57,6 +57,7 @@ class Settings(BaseSettings): FREEKASSA_PAYMENT_URL: str = Field(default="https://pay.freekassa.ru/") FREEKASSA_API_KEY: Optional[str] = None FREEKASSA_PAYMENT_IP: Optional[str] = None + FREEKASSA_PAYMENT_METHOD_ID: Optional[int] = None YOOKASSA_ENABLED: bool = Field(default=True) STARS_ENABLED: bool = Field(default=True)