feat: add logs in order router
This commit is contained in:
@@ -55,6 +55,14 @@ async def create_order(
|
|||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
}
|
}
|
||||||
|
logger.info(json.dumps({
|
||||||
|
'event': 'itpay_payment_create_request',
|
||||||
|
'client_payment_id': client_payment_id,
|
||||||
|
'amount_usdt': str(body.amount_usdt),
|
||||||
|
'amount_rub': amount_str,
|
||||||
|
'url': url,
|
||||||
|
'payload': payload,
|
||||||
|
}, ensure_ascii=False, default=str))
|
||||||
try:
|
try:
|
||||||
timeout = aiohttp.ClientTimeout(total=30)
|
timeout = aiohttp.ClientTimeout(total=30)
|
||||||
async with aiohttp.ClientSession(timeout=timeout) as session:
|
async with aiohttp.ClientSession(timeout=timeout) as session:
|
||||||
@@ -65,6 +73,12 @@ async def create_order(
|
|||||||
response_json = json.loads(response_text)
|
response_json = json.loads(response_text)
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
response_json = {'raw': response_text}
|
response_json = {'raw': response_text}
|
||||||
|
logger.info(json.dumps({
|
||||||
|
'event': 'itpay_payment_create_response',
|
||||||
|
'client_payment_id': client_payment_id,
|
||||||
|
'status': resp.status,
|
||||||
|
'response': response_json,
|
||||||
|
}, ensure_ascii=False, default=str))
|
||||||
if resp.status >= 400:
|
if resp.status >= 400:
|
||||||
logger.warning(f'itpay payments POST {resp.status} {response_text}')
|
logger.warning(f'itpay payments POST {resp.status} {response_text}')
|
||||||
raise ApplicationException(status_code=502, message='Payment provider error')
|
raise ApplicationException(status_code=502, message='Payment provider error')
|
||||||
@@ -93,6 +107,13 @@ async def create_order(
|
|||||||
async def itpay_webhook(request: Request, logger: ILogger = Depends(get_logger)) -> ORJSONResponse:
|
async def itpay_webhook(request: Request, logger: ILogger = Depends(get_logger)) -> ORJSONResponse:
|
||||||
raw = await request.body()
|
raw = await request.body()
|
||||||
ct = (request.headers.get('content-type') or '').lower()
|
ct = (request.headers.get('content-type') or '').lower()
|
||||||
|
logger.info(json.dumps({
|
||||||
|
'event': 'itpay_webhook_received',
|
||||||
|
'method': request.method,
|
||||||
|
'url': str(request.url),
|
||||||
|
'content_type': ct,
|
||||||
|
'body_size': len(raw),
|
||||||
|
}, ensure_ascii=False, default=str))
|
||||||
if 'application/json' in ct:
|
if 'application/json' in ct:
|
||||||
try:
|
try:
|
||||||
parsed = json.loads(raw.decode('utf-8'))
|
parsed = json.loads(raw.decode('utf-8'))
|
||||||
@@ -104,10 +125,12 @@ async def itpay_webhook(request: Request, logger: ILogger = Depends(get_logger))
|
|||||||
parsed = {k: (vals[0] if len(vals) == 1 else vals) for k, vals in qs.items()}
|
parsed = {k: (vals[0] if len(vals) == 1 else vals) for k, vals in qs.items()}
|
||||||
else:
|
else:
|
||||||
parsed = raw.decode('utf-8', errors='replace')
|
parsed = raw.decode('utf-8', errors='replace')
|
||||||
|
headers = {k: v for k, v in request.headers.items() if k.lower() not in {'authorization', 'cookie'}}
|
||||||
log_payload = {
|
log_payload = {
|
||||||
|
'event': 'itpay_webhook_payload',
|
||||||
'method': request.method,
|
'method': request.method,
|
||||||
'url': str(request.url),
|
'url': str(request.url),
|
||||||
'headers': {k: v for k, v in request.headers.items()},
|
'headers': headers,
|
||||||
'body': parsed,
|
'body': parsed,
|
||||||
}
|
}
|
||||||
logger.info(json.dumps(log_payload, ensure_ascii=False, default=str))
|
logger.info(json.dumps(log_payload, ensure_ascii=False, default=str))
|
||||||
|
|||||||
Reference in New Issue
Block a user