fix pay
This commit is contained in:
@@ -603,7 +603,6 @@ class BotInterface:
|
|||||||
"rub": amount,
|
"rub": amount,
|
||||||
"address": invoice.get("address"),
|
"address": invoice.get("address"),
|
||||||
"url": invoice.get("url"),
|
"url": invoice.get("url"),
|
||||||
"mock": invoice.get("mock", False),
|
|
||||||
"created_at": datetime.now().isoformat(),
|
"created_at": datetime.now().isoformat(),
|
||||||
}
|
}
|
||||||
await interface.payment_storage.save(invoice["payment_id"], payment_data)
|
await interface.payment_storage.save(invoice["payment_id"], payment_data)
|
||||||
@@ -635,11 +634,7 @@ class BotInterface:
|
|||||||
|
|
||||||
await callback.answer("⏳ Проверяем...")
|
await callback.answer("⏳ Проверяем...")
|
||||||
|
|
||||||
# Тестовый режим — сразу начисляем без проверки платежа
|
status = await interface.heleket.check_status(payment["payment_id"])
|
||||||
if payment.get("mock"):
|
|
||||||
status = "paid"
|
|
||||||
else:
|
|
||||||
status = await interface.heleket.check_status(payment["payment_id"])
|
|
||||||
|
|
||||||
if status == "paid":
|
if status == "paid":
|
||||||
await interface.payment_storage.delete(payment["payment_id"])
|
await interface.payment_storage.delete(payment["payment_id"])
|
||||||
@@ -921,7 +916,6 @@ class BotInterface:
|
|||||||
"rub": rub,
|
"rub": rub,
|
||||||
"address": invoice.get("address"),
|
"address": invoice.get("address"),
|
||||||
"url": invoice.get("url"),
|
"url": invoice.get("url"),
|
||||||
"mock": invoice.get("mock", False),
|
|
||||||
"created_at": datetime.now().isoformat(),
|
"created_at": datetime.now().isoformat(),
|
||||||
}
|
}
|
||||||
await interface.payment_storage.save(invoice["payment_id"], payment_data)
|
await interface.payment_storage.save(invoice["payment_id"], payment_data)
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ class HelketPayment:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.api_key = settings.HELEKET_API_KEY
|
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:
|
def _post_headers(self, body_bytes: bytes) -> dict:
|
||||||
"""Заголовки для POST-запроса с подписью."""
|
"""Заголовки для POST-запроса с подписью."""
|
||||||
@@ -49,13 +47,9 @@ class HelketPayment:
|
|||||||
Создаёт счёт на сумму в рублях.
|
Создаёт счёт на сумму в рублях.
|
||||||
Возвращает dict: payment_id, address, url. None при ошибке.
|
Возвращает dict: payment_id, address, url. None при ошибке.
|
||||||
"""
|
"""
|
||||||
if self._mock:
|
if not self.api_key:
|
||||||
return {
|
logger.error("HELEKET_API_KEY не задан")
|
||||||
"payment_id": f"mock_{order_id}",
|
return None
|
||||||
"address": None,
|
|
||||||
"url": None,
|
|
||||||
"mock": True,
|
|
||||||
}
|
|
||||||
|
|
||||||
payload = {
|
payload = {
|
||||||
"amount": str(amount_rub),
|
"amount": str(amount_rub),
|
||||||
@@ -90,8 +84,6 @@ class HelketPayment:
|
|||||||
|
|
||||||
async def check_status(self, payment_id: str) -> str:
|
async def check_status(self, payment_id: str) -> str:
|
||||||
"""Возвращает: 'paid' | 'pending' | 'expired' | 'error'"""
|
"""Возвращает: 'paid' | 'pending' | 'expired' | 'error'"""
|
||||||
if payment_id.startswith("mock_"):
|
|
||||||
return "pending"
|
|
||||||
try:
|
try:
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
async with session.get(
|
async with session.get(
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ class HelketWebhookServer:
|
|||||||
try:
|
try:
|
||||||
if clicks:
|
if clicks:
|
||||||
# Прямая покупка переходов
|
# Прямая покупка переходов
|
||||||
await self._balance_storage.add(user_id, clicks)
|
await self._balance_storage.add_balance(user_id, clicks)
|
||||||
added_clicks = clicks
|
added_clicks = clicks
|
||||||
msg = (
|
msg = (
|
||||||
f"✅ Оплата получена!\n\n"
|
f"✅ Оплата получена!\n\n"
|
||||||
@@ -134,8 +134,8 @@ class HelketWebhookServer:
|
|||||||
else:
|
else:
|
||||||
# Пополнение рублёвого баланса → конвертируем в переходы
|
# Пополнение рублёвого баланса → конвертируем в переходы
|
||||||
added_clicks = int(rub // settings.CLICK_PRICE_RUB)
|
added_clicks = int(rub // settings.CLICK_PRICE_RUB)
|
||||||
await self._balance_storage.add(user_id, added_clicks)
|
await self._balance_storage.add_balance(user_id, added_clicks)
|
||||||
await self._rub_storage.add(user_id, rub)
|
await self._rub_storage.add_balance(user_id, rub)
|
||||||
msg = (
|
msg = (
|
||||||
f"✅ Пополнение получено!\n\n"
|
f"✅ Пополнение получено!\n\n"
|
||||||
f"💳 Сумма: {rub} ₽\n"
|
f"💳 Сумма: {rub} ₽\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user