开发指南
HMAC 请求签名
平台 API 无需登录或 Bearer Token。每次请求由业务后端使用 API Access Key 和 HMAC 密钥生成签名。你的手机页面仍需自己的用户登录与授权:后端从登录态确定 playerId,不能把任意浏览器输入当作可读取其他玩家账本的授权。Webhook 使用同一算法,但使用独立配置的通知凭据。
| 请求头 | 填写内容 |
|---|---|
X-Access-Key | 对应方向、对应环境的 Access Key;它不是密钥 |
X-Timestamp | 十进制 Unix 秒。与服务器相差最多 300 秒,不是毫秒 |
X-Signature | HMAC-SHA256 的 64 个小写十六进制字符 |
三个头各发送一次。按下列顺序用 | 连接五段内容,再计算签名:
payload = METHOD + "|" + PATH + "|" + TIMESTAMP + "|" + QUERY + "|" + BODY
X-Signature = lowercase_hex(HMAC_SHA256(secret, payload))| 部分 | 取值规则 |
|---|---|
METHOD | 大写 GET 或 POST |
PATH | 实际发送的转义路径,以 / 开头;不含协议、域名、? 或 query |
TIMESTAMP | 与请求头 X-Timestamp 完全相同 |
QUERY | ? 后的原始内容,没有则为空;不要排序或重新编码 |
BODY | 实际发送的原始字节;GET 为空,不要把 JSON 解析后重新序列化再签名 |
GET 的最后一个 | 不能省略。JSON 的空格、换行或键顺序变了,签名也要重算。POST 只发送规定字段,不使用重复字段、大小写别名或尾随 JSON;标识字符串不能包含空白或控制字符。
300 秒时间窗用于检查请求是否过期,不负责业务去重。重试时刷新时间戳并重新签名,业务标识保持不变。401 时先逐字核对这五段内容,再查系统时间与凭据;不要通过修改业务订单来排查签名。