自助排障——你自己每一次调用的请求与响应,保留 30 天。
GET /api/v1/logs调用失败时先查这里,再来找我们。请求体和响应体在入库前已经脱敏,可以直接贴给支持团队。
除 通用列表参数 外:
| 参数 | 说明 |
|---|---|
request_id | 精确定位一次请求 |
status | 精确状态码,或 4xx / 5xx 这样的整类 |
path | 按请求路径精确匹配 |
error_code | 按错误码过滤,取值见 错误码 |
# 最近被拒绝的调用
curl -G "https://web.kukopay.com/api/v1/logs" \
-H "X-Api-Key: kuko_live_你的密钥" \
-d status=4xx \
-d limit=20
# 用手上的 request_id 定位
curl -G "https://web.kukopay.com/api/v1/logs" \
-H "X-Api-Key: kuko_live_你的密钥" \
-d request_id=req_9f2c1a7b4e8d0356c1ab77de90f4b215{
"object": "api_log",
"request_id": "req_9f2c1a7b4e8d0356c1ab77de90f4b215",
"mode": "live",
"method": "POST",
"path": "/api/v1/orders",
"status": 400,
"error_code": "invalid_request",
"duration_ms": 37,
"ip": "203.0.113.24",
"user_agent": "yourshop-backend/1.4.2",
"idempotency_key": "8f14e45f-ea2a-4c6f-9d3b-1b7c2a55e901",
"request_body": {
"out_trade_no": "ORD_20260921_0001",
"amount": 29.9
},
"response_body": {
"code": 400,
"error": "invalid_request",
"param": "amount",
"message": "订单金额必须是以最小货币单位(分)表示的正整数"
},
"created_at": "2026-09-21T08:31:12.114Z"
}上面这条日志一眼就能看出问题:amount 传了 29.9 而不是 2990。
密钥、令牌、卡号一类字段在入库前就被替换成 [redacted],任何嵌套层级都会处理。被脱敏的字段名包括 api_key、secret、client_secret、client_token、password、authorization、card、card_number、cvc 等。
超过 16 KB 的请求体只记录一个大小标记,不会整体存下来。
30 天。超期的记录会被自动清理,响应里的 retention_days 字段会告诉你当前的保留天数。
日志写入是尽力而为且不阻塞请求——日志出问题绝不能把一笔成功的支付变成失败。极端情况下可能出现个别调用没有留下日志记录,但这不影响交易本身。