This commit is contained in:
Yuriy Yuriev
2026-05-22 15:54:54 +07:00
parent d9fd1ffbbd
commit 49ab00056a
2 changed files with 8 additions and 8 deletions
+2 -2
View File
@@ -12,8 +12,8 @@ class Settings(BaseSettings):
ADMIN_PASSWORD: str = "" ADMIN_PASSWORD: str = ""
# Heleket payment # Heleket payment
HELEKET_API_KEY: str = "" HELEKET_MERCHANT_UUID: str = "" # UUID аккаунта → заголовок merchant:
HELEKET_SHOP_ID: str = "" HELEKET_API_KEY: str = "" # API ключ → вычисление sign:
CLICK_PRICE_RUB: float = 2.0 # Цена одного перехода в рублях CLICK_PRICE_RUB: float = 2.0 # Цена одного перехода в рублях
TOPUP_MIN_RUB: int = 50 # Минимальное пополнение ₽ TOPUP_MIN_RUB: int = 50 # Минимальное пополнение ₽
TOPUP_MAX_RUB: int = 50000 # Максимальное пополнение ₽ TOPUP_MAX_RUB: int = 50000 # Максимальное пополнение ₽
+6 -6
View File
@@ -25,12 +25,13 @@ class HelketPayment:
BASE_URL = "https://api.heleket.com/v1" BASE_URL = "https://api.heleket.com/v1"
def __init__(self): 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: def _post_headers(self, body_bytes: bytes) -> dict:
"""Заголовки для POST-запроса с подписью.""" """Заголовки для POST-запроса с подписью."""
return { return {
"merchant": self.api_key, "merchant": self.merchant_uuid,
"sign": _make_sign(body_bytes, self.api_key), "sign": _make_sign(body_bytes, self.api_key),
"Content-Type": "application/json", "Content-Type": "application/json",
} }
@@ -38,7 +39,7 @@ class HelketPayment:
def _get_headers(self) -> dict: def _get_headers(self) -> dict:
"""Заголовки для GET-запроса (тело пустое).""" """Заголовки для GET-запроса (тело пустое)."""
return { return {
"merchant": self.api_key, "merchant": self.merchant_uuid,
"sign": _make_sign(b"", self.api_key), "sign": _make_sign(b"", self.api_key),
} }
@@ -47,8 +48,8 @@ class HelketPayment:
Создаёт счёт на сумму в рублях. Создаёт счёт на сумму в рублях.
Возвращает dict: payment_id, address, url. None при ошибке. Возвращает dict: payment_id, address, url. None при ошибке.
""" """
if not self.api_key: if not self.merchant_uuid or not self.api_key:
logger.error("HELEKET_API_KEY не задан") logger.error("HELEKET_MERCHANT_UUID или HELEKET_API_KEY не заданы")
return None return None
payload = { payload = {
@@ -74,7 +75,6 @@ class HelketPayment:
"payment_id": r.get("uuid"), "payment_id": r.get("uuid"),
"address": r.get("address"), "address": r.get("address"),
"url": r.get("url"), "url": r.get("url"),
"mock": False,
} }
logger.error(f"Heleket create error: {data}") logger.error(f"Heleket create error: {data}")
return None return None