认证
请求头
所有请求必须包含以下 HTTP Header:
| Header | 说明 |
|---|---|
ACCESS-KEY | API Key(在平台申请) |
ACCESS-SIGN | 签名字符串 |
ACCESS-TIMESTAMP | 请求时间戳(毫秒) |
签名算法
使用 HMAC-SHA256 签名 + Base64 编码(业内标准),签名字符串生成规则:
POST 请求签名
- 将时间戳(毫秒)转为字符串
- 拼接签名字符串:
timestamp + method + requestPath + body - 使用 secretKey 对拼接字符串进行 HMAC-SHA256 签名
- 将签名结果进行 Base64 编码
GET 请求签名
- 将 Query 参数按 key 字母序排序
- 拼接成
?key1=value1&key2=value2格式 - 拼接签名字符串:
timestamp + method + requestPath + queryString - 使用 secretKey 对拼接字符串进行 HMAC-SHA256 签名
- 将签名结果进行 Base64 编码
签名示例
POST 请求示例
请求体: {"symbol":"AAPL","side":"buy","type":"limit","price":"185.50","quantity":"1000"}
时间戳: 1705737600000
请求路径: /api/v1/stock/open-api/order
方法: POST
签名字符串 = "1705737600000" + "POST" + "/api/v1/stock/open-api/order" + '{"symbol":"AAPL","side":"buy","type":"limit","price":"185.50","quantity":"1000"}'
签名 = Base64(HMAC-SHA256(签名字符串, secretKey))
GET 请求示例
参数: symbol=XSM, limit=20
时间戳: 1705737600000
请求路径: /api/v1/stock/open-api/depth
方法: GET
queryString = "?limit=20&symbol=XSM" (按key排序)
签名字符串 = "1705737600000" + "GET" + "/api/v1/stock/open-api/depth" + "?limit=20&symbol=XSM"
签名 = Base64(HMAC-SHA256(签名字符串, secretKey))
时间戳校验
- 时间戳必须在服务器时间 ±30秒 范围内
- 超出范围将返回
401 Unauthorized