签名算法
sign 字段按如下方式计算:
data是请求体负载(ReqPayload的data字段)merchant_token是您配置的密钥令牌HMAC-SHA256产生二进制摘要HEX将其转换为小写十六进制字符串(64 个字符)
重要:JSON 序列化
data 对象必须序列化为 JSON 且不含多余空格。不同的 JSON 库可能产生不同的输出:
请求信封
每个请求必须包含以下四个字段作为 JSON 对象:语言示例
Node.js
Python
Java
Go
验证
XPayLabs 通过以下方式验证每个请求:- 从
data字段和您存储的商家令牌重新计算 HMAC-SHA256 签名。 - 检查计算出的签名是否与提供的
sign值匹配。 - 验证
timestamp是否在服务器时钟的 5 分钟以内。 - 确保
nonce之前未被使用过。
401 Unauthorized 响应:
GET 请求签名
对于需要身份认证的GET 请求(例如 /v1/order/status/{orderId}、/v1/order/pay、/v1/order/getOrderStatus),sign 参数作为查询字符串值传递。签名基于相关参数(通常为 orderId)计算:

