@@ -1,6 +1,6 @@
|
||||
[flake8]
|
||||
max-line-length = 200
|
||||
ignore = E203, E266, E501, W503, F541, E704, W293, W291, E126, E121, E123, E128, E302,E131,E231,W292
|
||||
ignore = E203, E266, E501, W503, F541, E704, W293, W291, E126, E121, E123, E128, E302, E131, E231, W292, E402
|
||||
max-complexity = 25
|
||||
select = B, C, E, F, W, T4, B9
|
||||
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.txt
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
[settings]
|
||||
profile=black
|
||||
line_length = 200
|
||||
skip = ["bot.py"]
|
||||
line_length = 200
|
||||
@@ -0,0 +1,32 @@
|
||||
from aiocryptopay import AioCryptoPay, Networks
|
||||
from aiohttp import web
|
||||
from loguru import logger
|
||||
|
||||
from config import CRYPTO_BOT_ENABLE, CRYPTO_BOT_TOKEN
|
||||
|
||||
if CRYPTO_BOT_ENABLE:
|
||||
crypto = AioCryptoPay(token=CRYPTO_BOT_TOKEN, network=Networks.MAIN_NET)
|
||||
|
||||
|
||||
async def cryptobot_webhook(request):
|
||||
try:
|
||||
data = await request.json()
|
||||
logger.info(f"Получены данные вебхука: {data}")
|
||||
if data.get("update_type") == "invoice_paid":
|
||||
await process_crypto_payment(data["payload"])
|
||||
return web.Response(status=200)
|
||||
else:
|
||||
logger.warning(f"Неподдерживаемый тип обновления: {data.get('update_type')}")
|
||||
return web.Response(status=400)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка обработки вебхука: {e}")
|
||||
return web.Response(status=500)
|
||||
|
||||
|
||||
async def process_crypto_payment(payload):
|
||||
if payload["status"] == "paid":
|
||||
custom_payload = payload["payload"]
|
||||
user_id, sub_type = custom_payload.split(":")
|
||||
# TODO
|
||||
else:
|
||||
logger.warning(f"Получен неоплаченный инвойс: {payload}")
|
||||
+2
-1
@@ -25,4 +25,5 @@ urllib3==2.2.3
|
||||
wrapt==1.16.0
|
||||
yarl==1.15.5
|
||||
yookassa==3.3.0
|
||||
loguru
|
||||
loguru
|
||||
aiocryptopay
|
||||
Reference in New Issue
Block a user