access_key
access_key
请通过 API 密钥管理 获得。开发者接口包含两类 API: Public API 是不需要任何验证就可以使用的接口,而 Private API 是需要进行签名验证的接口。
PUBLIC API | PRIVATE API | |
---|---|---|
验证 | 无需验证 | 需要验证 |
使用频率 | 无限制 | 每 5 分钟每个用户 600 个请求 |
准备工作 | 无需准备立即可用 | 登录后通过 API密钥 页面获取 |
在给一个 Private API 请求签名之前, 你必须准备好你的 access/secret_key
,注册并认证通过之后,只需访问 API 密钥管理 页面就可以得到此信息。
所有的 Private API 都需要这3个用于身份验证的参数:
access_key
access_key
请通过 API 密钥管理 获得。tonce
tonce
是一个用正整数表示的时间戳,代表了从 Unix epoch 到当前时间所经过的毫秒数。tonce与服务器时间误差为正负30秒,且每个 tonce 数值只能使用一次。签名的生成很简单,先把将要发起的请求表示为一个字符串,然后对这个字符串做 HMAC-SHA256 运算:
其中 payload
就是代表这个请求的字符串, 通过组合 HTTP方法、请求地址和请求参数将会得到:
假设 secret_key
是 yyy
,那么使用 HMAC-SHA256 算法对上面例子中的 payload
计算的结果是 (以hex表示):
现在我们就可以这样来使用这个签名请求(以curl为例):
如果API调用失败,返回的请求会使用对应的HTTP status code, 同时返回包含了详细错误信息的JSON数据, 比如:
所有错误都遵循上面例子的格式,只是 CODE
和 MESSAGE
不同。CODE
是自定义的错误,代码表明此错误的类别,MESSAGE
是具体的出错信息。
对于成功的 API 请求,则会返回 200
作为 HTTP 状态码,同时返回请求的结果数据。
取消挂单 与 取消全部挂单 是一个异步操作,API 成功返回仅代表取消请求已经成功提交,服务器正在处理,并不代表订单已经完成取消。当你的挂单有尚未处理的成交事务或者取消请求队列繁忙时,该挂单会被延迟取消。API 返回被取消的挂单,返回结果中的挂单不一定处于取消状态,你的代码不应该依赖 API 返回结果,而应该通过 挂单查询接口 来得到该订单的最新状态。