Skip to content

Latest commit

 

History

History
72 lines (52 loc) · 3.71 KB

接口参数要求.md

File metadata and controls

72 lines (52 loc) · 3.71 KB

接口参数要求

请求的结构:

POST和DELETE请求方式的header:

参数名 必选 类型 说明
timestamp string 当前的时间戳(毫秒级时间戳,不能与服务器时间相差超过1分钟)
Content-Type string POST请求时必须为application/json
token string 用户登录返回的token(用的是旧的登录接口,但是会增加返回一个token,与原先的token需要做区分)
Authorization string 签名,POST请求时必须。签名规则见下文

GET请求方式的header

参数名 必选 类型 说明
timestamp string 当前的时间戳(毫秒级时间戳,不能与服务器时间相差超过1分钟)
token string 用户登录返回的token(用的是旧的登录接口,但是会增加返回一个token,与原先的token需要做区分)

body:

POST请求时,body应为json格式数据

签名认证算法:

签名生成规则如下:参与签名的字段包括请求的所有参数。对所有待签名参数(务必先全部小写)按照字段名的ASCII 码从小到大排序(字典序)后,使用键值对的格式(即key1=value1&key2=value2…)拼接成字符串string。这里需要注意的是所有参数名均为小写字符。对string作HMAC-SHA1签名得到string1,然后使用base64编码,最后把它当成Authorization头的值放在header进行传输。(参考阿里云的oss签名方式).

示例: 请求下单接口,自有的API对有: secretkey = “13b8e42848cbd317520bb889086c8978f0ee3358” 那么: 请求的下单参数如下:

"market": "btc_usdt","price": 6800,"number": 100,"types": 1,"multiple": 10

步骤1. 对所有待签名参数先转成全部小写再按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string:

market=btc_usdt&multiple=10&number=100&price=6800&types=1 步骤2. 对string用secretkey进行HMAC-SHA1签名(使用secretkey做密钥),得到字节数组:

步骤3. 对字节数组(不是上面的16进制小写字符串,如果传入是16进制的小写字符串,务必先转成字节数组)进行base64编码等到signature:

/L6HjINoxut/LoN8Tb/uOgsyBfI= 步骤4. 把Authorization的键值对放在header传输: Authorization = signature

最终效果是长这样:

POST /api/open/v1/entrusts HTTP/1.1 timestamp:1577177092465 Authorization: /L6HjINoxut/LoN8Tb/uOgsyBfI= Content-Type: application/json token:7e3f841a77144acfbbf7d13a1d3eb5ab

{ “market”: “btc_usdt”, “price”: 6800, “number”: 100, “types”: 1, “multiple”: 10 } 注意事项

1.timestamp为毫秒级时间戳,而且不能与服务器时间相差超过1分钟。 2.参与签名的字段,务必先转成小写,再进行字典排序。 3.签名的字符串必须为UTF-8编码格式。含有中文字符的签名字符串必须先进行UTF-8编码,再与 accesskey计算最终签名。 4.POST提交数据的编码方式为:application/json(即是Content—Type: application/json)。 5.客户端可以随机加上一些键值对,有助于防止泄露SecretKey的概率,但是参与的话,都需要验签,同时,不能超过20个键值对。