Skip to content

请求签名 ​

使用商户密钥计算 HMAC-SHA256,签名随请求头发送。

请求头 ​

参数类型必填说明
X-App-Idstring是商户 APPID,10 位数字,首位非 0
X-Timestampstring是Unix 秒级时间戳,10 位数字;允许前后 300 秒偏差
X-Noncestring是32 位小写十六进制随机串;每次请求重新生成
X-Signaturestring是HMAC-SHA256 签名,64 位小写十六进制

签名串 ​

按以下顺序拼接,每行以 LF(\n)结束,包括最后一行:

text
HTTP方法 + "\n" +
请求路径 + "\n" +
APPID + "\n" +
时间戳 + "\n" +
随机串 + "\n" +
原始请求体 + "\n"
  • HTTP 方法使用大写 GET 或 POST。
  • 路径包含原始查询字符串,例如 /v1/payment-orders?third_order_no=ORDER202610220001,不包含域名。
  • GET 请求体为空,签名串以两个 LF 结束。POST 使用实际发送的原始 JSON 字节,签名后不重新格式化。

计算签名 ​

将密钥字符直接作为 UTF-8 字节,不能先做十六进制解码。输出 64 位小写十六进制字符串:

text
signature = hex_lower(HMAC_SHA256(secret_utf8, canonical_utf8))

将结果放入 X-Signature。密钥不随请求发送。完整可运行代码见开发资源。