diff --git a/config/settings.py b/config/settings.py index 0d04549..2e1f27b 100644 --- a/config/settings.py +++ b/config/settings.py @@ -12,8 +12,8 @@ class Settings(BaseSettings): ADMIN_PASSWORD: str = "" # Heleket payment - HELEKET_API_KEY: str = "" - HELEKET_SHOP_ID: str = "" + HELEKET_MERCHANT_UUID: str = "" # UUID аккаунта → заголовок merchant: + HELEKET_API_KEY: str = "" # API ключ → вычисление sign: CLICK_PRICE_RUB: float = 2.0 # Цена одного перехода в рублях TOPUP_MIN_RUB: int = 50 # Минимальное пополнение ₽ TOPUP_MAX_RUB: int = 50000 # Максимальное пополнение ₽ diff --git a/services/payment_service.py b/services/payment_service.py index f8f8907..df3a68e 100644 --- a/services/payment_service.py +++ b/services/payment_service.py @@ -25,12 +25,13 @@ class HelketPayment: BASE_URL = "https://api.heleket.com/v1" def __init__(self): - self.api_key = settings.HELEKET_API_KEY + self.merchant_uuid = settings.HELEKET_MERCHANT_UUID # заголовок merchant: + self.api_key = settings.HELEKET_API_KEY # для вычисления sign: def _post_headers(self, body_bytes: bytes) -> dict: """Заголовки для POST-запроса с подписью.""" return { - "merchant": self.api_key, + "merchant": self.merchant_uuid, "sign": _make_sign(body_bytes, self.api_key), "Content-Type": "application/json", } @@ -38,7 +39,7 @@ class HelketPayment: def _get_headers(self) -> dict: """Заголовки для GET-запроса (тело пустое).""" return { - "merchant": self.api_key, + "merchant": self.merchant_uuid, "sign": _make_sign(b"", self.api_key), } @@ -47,8 +48,8 @@ class HelketPayment: Создаёт счёт на сумму в рублях. Возвращает dict: payment_id, address, url. None при ошибке. """ - if not self.api_key: - logger.error("HELEKET_API_KEY не задан") + if not self.merchant_uuid or not self.api_key: + logger.error("HELEKET_MERCHANT_UUID или HELEKET_API_KEY не заданы") return None payload = { @@ -74,7 +75,6 @@ class HelketPayment: "payment_id": r.get("uuid"), "address": r.get("address"), "url": r.get("url"), - "mock": False, } logger.error(f"Heleket create error: {data}") return None