当前位置:主页 > 帮助中心 > 正文

API 开发者接口

12-02 帮助中心

API 开发者接口接口URI前缀: /api/v2返回结果格式: JSON全部 API 列表

开发者接口包含两类 API: Public API 是不需要任何验证就可以使用的接口,而 Private API 是需要进行签名验证的接口。Private API 如果没有特别说明,可以供个人用户以及合作商户使用。对于个人用户在使用 Private API 之前,需要注册云币账户并认证通过,然后访问 API 秘钥管理 页面获取 access_keysecret_key 。合作商户请联系云币工作人员获取 partner_access_keypartner_sercet_key

个人用户签名

所有的 Private API 都需要这3个用于身份验证的参数:

access_key: access_key 请通过 API 密钥管理 获得。tonce: tonce 是一个用正整数表示的时间戳,代表了从 Unix epoch 到当前时间所经过的毫秒数。tonce与服务器时间误差为正负30秒,且每个 tonce 数值只能使用一次。signature: signature 通过 API 密钥管理 获得 secret_key 后所生成的签名。签名步骤

签名的生成很简单,先把将要发起的请求表示为一个字符串,然后对这个字符串做 HMAC-SHA256 运算:

hash = HMAC-SHA256(payload, secret_key).to_hex

其中 payload 就是代表这个请求的字符串, 通过组合 HTTP方法、请求地址和请求参数将会得到:

# canonical_verb 请求方法,例如GET  # canonical_uri 请求地址,例如 /api/v2/markets  # canonical_query 请求参数,通过 & 连接而成的字符串参数包括 access_key 和 tonce  #   参数必须按照字母序排列,例如 access_key=xxx&foo=bar&tonce=123456789  # # 最后再把这三个字符串通过 '|' 字符连接起来,看起来就像这样:  # GET|/api/v2/markets|access_key=xxx&foo=bar&tonce=123456789def payload    "#{canonical_verb}|#{canonical_uri}|#{canonical_query}"  end

假设 secret_keyyyy,那么使用 HMAC-SHA256 算法对上面例子中的 payload 计算的结果是 (以hex表示):

payload = 'GET|/api/v2/markets|access_key=xxx&foo=bar&tonce=123456789'  hash = HMAC-SHA256(payload, 'yyy').to_hex  # e324059be4491ed8e528aa7b8735af1e96547fbec96db962d51feb7bf1b64dee

现在我们就可以这样来使用这个签名请求(以curl为例):

curl -X GET 'https://yunbi.com/api/v2/markets?access_key=xxx&foo=bar&tonce=123456789&signature=e324059be4491ed8e528aa7b8735af1e96547fbec96db962d51feb7bf1b64dee'
合作商户签名

首先按照上一节中个人用户签名的步骤,使用用户的 secret_key 对用户提交的数据进行签名。假设用户的 access_keyxxxsecret_keyyyypayload 是:

GET|/api/v2/markets|access_key=xxx&foo=bar&tonce=123456789

版权保护: 本文由 主页 原创,转载请保留链接: http://www.yunbijiaoyisuo.com/yunbi/help/2018/1202/1795.html