From d9fd1ffbbd85775edb4a637605d531419914f698 Mon Sep 17 00:00:00 2001 From: Yuriy Yuriev Date: Fri, 22 May 2026 15:51:25 +0700 Subject: [PATCH] fix pay --- handlers/commands.py | 8 +------- services/payment_service.py | 14 +++----------- services/webhook_server.py | 6 +++--- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/handlers/commands.py b/handlers/commands.py index 2b804fc..9f8b2bf 100644 --- a/handlers/commands.py +++ b/handlers/commands.py @@ -603,7 +603,6 @@ class BotInterface: "rub": amount, "address": invoice.get("address"), "url": invoice.get("url"), - "mock": invoice.get("mock", False), "created_at": datetime.now().isoformat(), } await interface.payment_storage.save(invoice["payment_id"], payment_data) @@ -635,11 +634,7 @@ class BotInterface: await callback.answer("⏳ Проверяем...") - # Тестовый режим — сразу начисляем без проверки платежа - if payment.get("mock"): - status = "paid" - else: - status = await interface.heleket.check_status(payment["payment_id"]) + status = await interface.heleket.check_status(payment["payment_id"]) if status == "paid": await interface.payment_storage.delete(payment["payment_id"]) @@ -921,7 +916,6 @@ class BotInterface: "rub": rub, "address": invoice.get("address"), "url": invoice.get("url"), - "mock": invoice.get("mock", False), "created_at": datetime.now().isoformat(), } await interface.payment_storage.save(invoice["payment_id"], payment_data) diff --git a/services/payment_service.py b/services/payment_service.py index 23e1e1f..f8f8907 100644 --- a/services/payment_service.py +++ b/services/payment_service.py @@ -26,8 +26,6 @@ class HelketPayment: def __init__(self): self.api_key = settings.HELEKET_API_KEY - self.shop_id = settings.HELEKET_SHOP_ID - self._mock = not (self.api_key and self.shop_id) def _post_headers(self, body_bytes: bytes) -> dict: """Заголовки для POST-запроса с подписью.""" @@ -49,13 +47,9 @@ class HelketPayment: Создаёт счёт на сумму в рублях. Возвращает dict: payment_id, address, url. None при ошибке. """ - if self._mock: - return { - "payment_id": f"mock_{order_id}", - "address": None, - "url": None, - "mock": True, - } + if not self.api_key: + logger.error("HELEKET_API_KEY не задан") + return None payload = { "amount": str(amount_rub), @@ -90,8 +84,6 @@ class HelketPayment: async def check_status(self, payment_id: str) -> str: """Возвращает: 'paid' | 'pending' | 'expired' | 'error'""" - if payment_id.startswith("mock_"): - return "pending" try: async with aiohttp.ClientSession() as session: async with session.get( diff --git a/services/webhook_server.py b/services/webhook_server.py index 7b8f8a4..6a0fea7 100644 --- a/services/webhook_server.py +++ b/services/webhook_server.py @@ -123,7 +123,7 @@ class HelketWebhookServer: try: if clicks: # Прямая покупка переходов - await self._balance_storage.add(user_id, clicks) + await self._balance_storage.add_balance(user_id, clicks) added_clicks = clicks msg = ( f"✅ Оплата получена!\n\n" @@ -134,8 +134,8 @@ class HelketWebhookServer: else: # Пополнение рублёвого баланса → конвертируем в переходы added_clicks = int(rub // settings.CLICK_PRICE_RUB) - await self._balance_storage.add(user_id, added_clicks) - await self._rub_storage.add(user_id, rub) + await self._balance_storage.add_balance(user_id, added_clicks) + await self._rub_storage.add_balance(user_id, rub) msg = ( f"✅ Пополнение получено!\n\n" f"💳 Сумма: {rub} ₽\n"