before review
This commit is contained in:
@@ -37,7 +37,6 @@ FREEKASSA_ENABLED=True #
|
|||||||
FREEKASSA_MERCHANT_ID=your_shop_id # Your shop ID in FreeKassa
|
FREEKASSA_MERCHANT_ID=your_shop_id # Your shop ID in FreeKassa
|
||||||
FREEKASSA_API_KEY=your_api_key # API key for REST requests
|
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_SECOND_SECRET=your_second_secret # Secret word #2 (used to verify notifications)
|
||||||
FREEKASSA_CURRENCY=RUB # Default currency for orders
|
|
||||||
FREEKASSA_PAYMENT_IP= # Public IP address reported to FreeKassa
|
FREEKASSA_PAYMENT_IP= # Public IP address reported to FreeKassa
|
||||||
|
|
||||||
# CryptoBot Payment Gateway Configuration
|
# CryptoBot Payment Gateway Configuration
|
||||||
|
|||||||
@@ -86,7 +86,6 @@
|
|||||||
| `FREEKASSA_API_KEY` | API-ключ для запросов к FreeKassa REST API. |
|
| `FREEKASSA_API_KEY` | API-ключ для запросов к FreeKassa REST API. |
|
||||||
| `FREEKASSA_SECOND_SECRET` | Секретное слово №2 — используется для проверки уведомлений от FreeKassa. |
|
| `FREEKASSA_SECOND_SECRET` | Секретное слово №2 — используется для проверки уведомлений от FreeKassa. |
|
||||||
| `FREEKASSA_PAYMENT_URL` | (Опционально, legacy SCI) Базовый URL платёжной формы FreeKassa. По умолчанию `https://pay.freekassa.ru/`. |
|
| `FREEKASSA_PAYMENT_URL` | (Опционально, legacy SCI) Базовый URL платёжной формы FreeKassa. По умолчанию `https://pay.freekassa.ru/`. |
|
||||||
| `FREEKASSA_CURRENCY` | Код валюты платежа (например, `RUB`). |
|
|
||||||
| `FREEKASSA_PAYMENT_IP` | Внешний IP вашего сервера, который будет передаваться в запрос оплаты. |
|
| `FREEKASSA_PAYMENT_IP` | Внешний IP вашего сервера, который будет передаваться в запрос оплаты. |
|
||||||
| `STARS_ENABLED` | Включить/выключить Telegram Stars (`true`/`false`). |
|
| `STARS_ENABLED` | Включить/выключить Telegram Stars (`true`/`false`). |
|
||||||
| `TRIBUTE_ENABLED`| Включить/выключить Tribute (`true`/`false`). |
|
| `TRIBUTE_ENABLED`| Включить/выключить Tribute (`true`/`false`). |
|
||||||
|
|||||||
@@ -344,7 +344,7 @@ async def pay_fk_callback_handler(
|
|||||||
user_id=payment_record.user_id,
|
user_id=payment_record.user_id,
|
||||||
months=months,
|
months=months,
|
||||||
amount=price_rub,
|
amount=price_rub,
|
||||||
currency=settings.DEFAULT_CURRENCY_SYMBOL or "RUB",
|
currency=freekassa_service.default_currency,
|
||||||
method_code=44,
|
method_code=44,
|
||||||
ip_address=freekassa_service.server_ip,
|
ip_address=freekassa_service.server_ip,
|
||||||
extra_params={
|
extra_params={
|
||||||
|
|||||||
@@ -42,9 +42,7 @@ class FreeKassaService:
|
|||||||
self.shop_id: Optional[str] = settings.FREEKASSA_MERCHANT_ID
|
self.shop_id: Optional[str] = settings.FREEKASSA_MERCHANT_ID
|
||||||
self.api_key: Optional[str] = settings.FREEKASSA_API_KEY
|
self.api_key: Optional[str] = settings.FREEKASSA_API_KEY
|
||||||
self.second_secret: Optional[str] = settings.FREEKASSA_SECOND_SECRET
|
self.second_secret: Optional[str] = settings.FREEKASSA_SECOND_SECRET
|
||||||
self.default_currency: str = (
|
self.default_currency: str = (settings.DEFAULT_CURRENCY_SYMBOL or "RUB").upper()
|
||||||
settings.FREEKASSA_CURRENCY or settings.DEFAULT_CURRENCY_SYMBOL or "RUB"
|
|
||||||
).upper()
|
|
||||||
self.server_ip: Optional[str] = settings.FREEKASSA_PAYMENT_IP
|
self.server_ip: Optional[str] = settings.FREEKASSA_PAYMENT_IP
|
||||||
|
|
||||||
self.api_base_url: str = "https://api.fk.life/v1"
|
self.api_base_url: str = "https://api.fk.life/v1"
|
||||||
@@ -378,7 +376,7 @@ class FreeKassaService:
|
|||||||
await notification_service.notify_payment_received(
|
await notification_service.notify_payment_received(
|
||||||
user_id=payment.user_id,
|
user_id=payment.user_id,
|
||||||
amount=float(payment.amount),
|
amount=float(payment.amount),
|
||||||
currency=self.currency or self.settings.DEFAULT_CURRENCY_SYMBOL,
|
currency=self.default_currency or self.settings.DEFAULT_CURRENCY_SYMBOL,
|
||||||
months=months,
|
months=months,
|
||||||
payment_provider="freekassa",
|
payment_provider="freekassa",
|
||||||
username=db_user.username if db_user else None,
|
username=db_user.username if db_user else None,
|
||||||
|
|||||||
+4
-1
@@ -49,7 +49,6 @@ class Settings(BaseSettings):
|
|||||||
FREEKASSA_FIRST_SECRET: Optional[str] = None
|
FREEKASSA_FIRST_SECRET: Optional[str] = None
|
||||||
FREEKASSA_SECOND_SECRET: Optional[str] = None
|
FREEKASSA_SECOND_SECRET: Optional[str] = None
|
||||||
FREEKASSA_PAYMENT_URL: str = Field(default="https://pay.freekassa.ru/")
|
FREEKASSA_PAYMENT_URL: str = Field(default="https://pay.freekassa.ru/")
|
||||||
FREEKASSA_CURRENCY: str = Field(default="RUB")
|
|
||||||
FREEKASSA_API_KEY: Optional[str] = None
|
FREEKASSA_API_KEY: Optional[str] = None
|
||||||
FREEKASSA_PAYMENT_IP: Optional[str] = None
|
FREEKASSA_PAYMENT_IP: Optional[str] = None
|
||||||
|
|
||||||
@@ -400,6 +399,10 @@ def get_settings() -> Settings:
|
|||||||
logging.warning(
|
logging.warning(
|
||||||
"WARNING: FreeKassa second secret is not set. Incoming payment notifications cannot be verified."
|
"WARNING: FreeKassa second secret is not set. Incoming payment notifications cannot be verified."
|
||||||
)
|
)
|
||||||
|
if not _settings_instance.subscription_options:
|
||||||
|
logging.warning(
|
||||||
|
"CRITICAL: FreeKassa is enabled but no subscription prices are configured (RUB_PRICE_*). Users will not see payment buttons."
|
||||||
|
)
|
||||||
|
|
||||||
except ValidationError as e:
|
except ValidationError as e:
|
||||||
logging.critical(
|
logging.critical(
|
||||||
|
|||||||
Reference in New Issue
Block a user