-
Notifications
You must be signed in to change notification settings - Fork 5
签名认证
CoinTiger-API edited this page Sep 6, 2019
·
10 revisions
目前关于apikey申请和修改,请在“账户 - API管理”页面进行相关操作。其中AccessKey为API 访问密钥,secret为用户对请求进行签名的密钥(仅申请时可见)
重要提示:这两个密钥与账号安全紧密相关,无论何时都请勿向其它人透露。
基于安全考虑,除行情API 外的 API 请求都必须进行签名运算。一个合法的请求由以下几部分组成:
- 方法请求地址 即访问服务器地址:api.cointiger.com或者api.cointiger.pro 后面跟上方法名,比如api.cointiger.pro/v2/order 。
- API 访问密钥(secret) 您申请的 APIKEY 中的secret。
- 时间戳(Timestamp) 在查询请求中包含此值有助于防止第三方截取您的请求。如:1525515995127 (毫秒)
- 必选和可选参数 每个方法都有一组用于定义 API 调用的必需参数和可选参数。可以在每个方法的说明中查看这些参数及其含义。 请一定注意:对于GET,POST请求,每个方法自带的参数都需要进行签名运算。
- 签名 签名计算得出的值,用于确保签名有效和未被篡改。
例:GET 请求
注意:方法自带的签名参数也要明文传过来
GET {Trading_Macro_v2}/order/details?api_key=c9a97adf-7909-444a-bf9e-1471210c4770&time=1525522215129&order_id=4887370&symbol=ethbtc&sign=74d7439cc46211e925f0d
cdd97fa000e75372e87a12e0804989ca575422e8935f68201c47f5d74ba3b1d1d6e39f984c787be3b2f237de12522386f987e27d67f
例:POST 请求 (form-data 方式提交参数)
注意:POST请求 time,sign也放到请求URL参数列表中
{Trading_Macro_v2}/order?api_key=c9a97adf-7909-444a-bf9e-1471210c4770&time=1533548203304&sign=74d7439c
c46211e925f0dcdd97fa000e75372e87a12e0804989ca575422e8935f68201c47f5d74ba3b1d1d6e39f984c787be3b2f237de12522386f987e27d67f
注意:方法自带的签名参数也要明文传过来
{
"symbol": "tchbtc",
"price": "10.1",
"volume": "100.1",
"side": "BUY",
"type": "1",
"time": "1533548203304"
}
API 请求在通过 Internet 发送的过程中极有可能被篡改。为了确保请求未被更改,我们会要求用户在每个请求中带上签名(行情 API 除外),来校验参数或参数值在传输途中是否发生了更改。
- 规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询某订单详情请求为例进行说明
GET {Trading_Macro_v2}/order/details?api_key=c9a97adf-7909-444a-bf9e-1471210c4770&time=1525522215129&order_id=4887370&symbol=ethbtc&sign=74d7439c
c46211e925f0dcdd97fa000e75372e87a12e0804989ca575422e8935f68201c47f5d74ba3b1d1d6e39f984c787be3b2f237de12522386f987e27d67f
- 请求方法(GET 或 POST)
GET
- 添加小写的访问地址
api.cointiger.com 或者 api.cointiger.pro
- 访问方法的路径
/exchange/trading/api/v2/order/details
- sign的生成规则:sign=HMAC-SHA512(param1+value1+param2+value2+secret)
- 所有参数的param按字母升序排列,为避免排序问题,param只能使用字母及"",并且""的排序在“z”之前,“”的排 序""在“”之前,生成sign时,需先按param排序后,按上述方法加密,同时替换掉所有空格
symbol:tchbtc
order_id:163560
time:1532859225860
secret:OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==
这些参数会被排序为:
order_id:163560
symbol:tchbtc
time:1532859225860
secret:OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==
按照以上顺序,将各参数连接组成最终的要进行签名计算的字符串如下:
order_id163560symboltchbtctime1532860279292OTQxYzQ3NTYxOWJkNzFkNmFhNDcyMjYxZmJmZDE4ZTU3ZDMyNzVhYWE5MjFmNzU5ZWZhNWRjN2Y2YeMyMmFiMw==
最终,发送到服务器的 API GET请求应该为:
{Trading_Macro_v2}/order/details?api_key=c9a97adf-7909-444a-bf9e-1471210c4770&time=1525522215129&order_id=4887370&symbol=ethbtc&sign=74d7439c
c46211e925f0dcdd97fa000e75372e87a12e0804989ca575422e8935f68201c47f5d74ba3b1d1d6e39f984c787be3b2f237de12522386f987e27d67f
最终,发送到服务器的 API POST请求应该为:
注意:POST请求 time,sign也放到请求URL参数列表中
{Trading_Macro_v2}/order?api_key=c9a97adf-7909-444a-bf9e-1471210c4770&time=1533548203304&sign=74d7439c
c46211e925f0dcdd97fa000e75372e87a12e0804989ca575422e8935f68201c47f5d74ba3b1d1d6e39f984c787be3b2f237de12522386f987e27d67f
请求参数:示例(form-data 方式提交参数)
{
"symbol": "tchbtc",
"price": "10.1",
"volume": "100.1",
"side": "BUY",
"type": "1"
}
注:100001-110000,系统错误保留段
100001:系统异常
100002:系统升级,暂停服务
100003:请求非法
English Documents click here