鉴权(HMAC)
所有 API(POST /v1/payments、GET /v1/payments/:paymentId)均需携带下列请求头。
签名原文(按顺序用换行 \n 拼接):
timestamp + "\n" + METHOD + "\n" + path + "\n" + sha256(rawBody)- timestamp:Unix 秒;与服务器时间差不得超过 5 分钟。
- path:URL 路径(含前导
/,不含 query),例如/v1/payments或/v1/payments/p_01HXXX。 - rawBody:原始请求体字节;GET 无 body 时,对空字符串做 SHA-256,取 hex。
- Signature:
HMAC-SHA256(apiSecret, 上述原文).hex()。
Content-Type: application/jsonAuthorization: Influx-HMAC-SHA256 ApiKey=<ApiKey>,Timestamp=<unix秒>,Signature=<hex>Content-Type 在 POST 时必填;GET 可不传 body,建议仍带此头。
POST 创建收款单
Section titled “POST 创建收款单”POST {baseUrl}/v1/paymentsContent-Type: application/jsonAuthorization: Influx-HMAC-SHA256 ApiKey=ak_live_xxx,Timestamp=1714291200,Signature=a1b2c3...
{"orderNo":"ORDER-001","tokenSymbol":"USDT","amount":"10.50","expireSec":1800,"notifyUrl":"https://merchant.example.com/webhook"}GET 查询订单
Section titled “GET 查询订单”GET {baseUrl}/v1/payments/p_01HXXXAuthorization: Influx-HMAC-SHA256 ApiKey=ak_live_xxx,Timestamp=1714291200,Signature=d4e5f6...无请求体;签名中的 body 哈希为空字符串的 SHA-256 hex。
鉴权失败(401)
Section titled “鉴权失败(401)”{ "error": "UNAUTHORIZED", "message": "Merchant HMAC authorization is required"}message 会说明具体原因(缺头、签名错误、时间窗超限等)。更多错误码见 错误码。