目前关于apikey申请和修改,请在“账户 - API管理”页面进行相关操作。其中AccessKey为API 访问密钥,SecretKey为用户对请求进行签名的密钥。 重要提示:这两个密钥与账号安全紧密相关,无论何时都请勿向其它人透露
基于安全考虑,除行情API 外的 API 请求都必须进行签名运算。一个合法的请求由以下几部分组成: 方法请求地址,即访问服务器地址:hkapi.hotcoin.top后面跟上方法名,比如hkapi.hotcoin.top/v1/balance。 API 访问密钥(AccessKeyId) 您申请的 APIKEY 中的AccessKey。 签名方法(SignatureMethod) 用户计算签名的基于哈希的协议,此处使用 HmacSHA256。 签名版本(SignatureVersion) 签名协议的版本,此处使用2。 时间戳(Timestamp) 您发出请求的时间 (UTC 时区) (UTC 时区) (UTC 时区)。在查询请求中包含此值有助于防止第三方截取您的请求。如:2017-05-11 16:22:06。 调用的必需参数和可选参数。可以在每个方法的说明中查看这些参数及其含义。签名计算得出的值,用于确保签名有效和未被篡改。 例: https://hkapi.hotcoin.top/v1/order/cancel? AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx &id=1234567890 &SignatureMethod=HmacSHA256 &SignatureVersion=2 &Timestamp=2018-01-01 00:00:00 &Signature=calculated value ##签名运算 API 请求在通过 Internet 发送的过程中极有可能被篡改。为了确保请求未被更改,我们会要求用户在每个请求中带上签名,来校验参数或参数值在传输途中是否发生了更改。
计算签名所需的步骤: 规范要计算签名的请求 因为使用 HMAC 进行签名计算时,使用不同内容计算得到的结果会完全不同。所以在进行签名计算前,请先对请求进行规范化处理。下面以查询某订单详情请求为例进行说明
https://hkapi.hotcoin.top/v1/order/cancel? AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx &id=1234567890 &SignatureMethod=HmacSHA256 &SignatureVersion=2 &Timestamp=2017-05-11T15:19:30 请求方法(GET 或 POST),后面添加换行符\n。 GET\n 添加小写的访问地址,后面添加换行符\n。 hkapi.hotcoin.top\n 访问方法的路径,后面添加换行符\n。 / v1/order/cancel \n 按照ASCII码的顺序对参数名进行排序(使用 UTF-8 编码,且进行了 URI 编码,十六进制字符必须大写,如‘:’会被编码为'%3A',空格被编码为'%20')。 例如,下面是请求参数的原始顺序,进行过编码后。
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx SignatureMethod=HmacSHA256 SignatureVersion=2 Timestamp=2017-05-11%2015%3A19%3A30 id=1234567890
这些参数会被排序为:
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx id=1234567890 SignatureMethod=HmacSHA256 SignatureVersion=2 Timestamp=2017-05-11%2015%3A19%3A30 按照以上顺序,将各参数使用字符’&’连接。
AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&order-id=1234567890 组成最终的要进行签名计算的字符串如下:
GET\n hkapi.hotcoin.top\n /v1/order/cancel\n AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&id=1234567890&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11%2015%3A19%3A30 计算签名,将以下两个参数传入加密哈希函数: 要进行签名计算的字符串 GET\n hkapi.hotcoin.top\n hkapi.hotcoin.top\n AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&id=1234567890&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30 进行签名的密钥(SecretKey) b0xxxxxx-c6xxxxxx-94xxxxxx-dxxxx 得到签名计算结果并进行 Base64编码 4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o= 将上述值作为参数Signature的取值添加到 API 请求中。 将此参数添加到请求时,必须将该值进行 URI 编码。 最终,发送到服务器的 API 请求应该为:
https://hotcoin.top/v1/order/cancel? AccessKeyId=e2xxxxxx-99xxxxxx-84xxxxxx-7xxxx&id=1234567890&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15%3A19%3A30&Signature=4F65x5A2bLyMWVQj3Aqp+B4w+ivaA7n5Oi2SuYtCJ9o=
symbol 规则: 基础币种+计价币种。如BTC/USDT,symbol为btc_usdt;ETH/BTC, symbol为eth_btc。以此类推。
####下单:/v1/order/place 参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
symbol | y | String | 交易对 | 例:btc_usdt | |
type | y | String | 类型 | "buy" ,”sell" | |
tradeAmount | y | BigDecimal | 数量 | ||
tradePrice | y | BigDecimal | 价钱 |
返回:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | Int | 状态码 | 成功:200,失败:300 | |
msg | y | String | 消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | Object | 数据 | ||
data | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
ID | y | Int | 订单id | ||
返回json |
{
"code": 200,
"msg": "委託成功",
"time": 1536306331399,
"data":
{
"ID": 18194813
}
}
参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
id | y | Bigint | 委单id |
返回:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | Int | 状态码 | 成功:200,失败:300 | |
msg | y | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
返回json |
{
"code": 200,
"msg": "取消成功",
"time": 1536306495984,
"data": null
}
参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
id | y | Bigint | 委单id |
返回:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | Int | 状态码 | ||
msg | n | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | Map | 委单详情 |
data
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
types | y | String | 委单类型 | 買單 、賣單 | |
leftcount | y | BigDecimal | 未成交 | ||
fees | y | BigDecimal | 手续费 | ||
last | y | BigDecimal | 成交数量 | ||
count | y | BigDecimal | 数量 | ||
successamount | y | BigDecimal | 已成交总价 | ||
source | y | String | 来源 | API、WEB、APP | |
type | y | int | 类型代码 | 0(买单),1(卖单) | |
price | y | BigDecimal | 价钱 | ||
buysymbol | n | String | 买符号 | ||
sellsymbol | n | String | 卖符号 | ||
time | y | String | 创建时间 | ||
status | y | String | 状态 | 未成交、部分成交、完全成交、撤單處理中、已撤銷 | |
返回json: |
{
"code": 200,
"msg": "成功",
"time": 1536306896294,
"data": {
"types": "買單",
"leftcount": 0.01,
"fees": 0,
"last": 0,
"count": 0.01,
"successamount": 0,
"source": "API",
"type": 0,
"price": 40000,
"buysymbol": "",
"id": 18194814,
"time": "2018-09-07 15:48:44",
"sellsymbol": "",
"status": "未成交"
}
}
参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
symbol | y | String | 交易对 | 例:btc_usdt | |
type | n | int | 类型 | 0 | 0表示全部 1表示当前 2表示历史 |
count | y | int | 条数 | 7 |
返回:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | int | 状态码 | ||
msg | n | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | Map | 委单详情 |
data
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
entrutsCur | n | Array(map) | 当前委单 | ||
entrutsHis | n | Array(map) | 历史委单 | ||
entrutsCur 及 entrutsHis类型相同 | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
id | y | BigInteger | 委单id | ||
time | y | String | 下单时间 | ||
types | y | String | 委单类型枚举 | "買單", "賣單" | |
source | y | String | 委单来源 | "WEB","APP","API" | |
price | y | BigDecimal | 下单价格 | ||
count | y | BigDecimal | 下单数量 | ||
leftcount | y | BigDecimal | 未成交数量 | ||
last | y | BigDecimal | 成交价格 | ||
successamount | y | BigDecimal | 成交总价 | ||
fees | y | BigDecimal | 手续费 | ||
status | y | String | 委单状态 | "未成交", "部分成交", "完全成交", "撤单处理中", "已撤销" | |
type | y | int | 委单类型 | 0( "买单"),1( "卖单") | |
buysymbol | y | String | 币种类型符号 | ||
sellsymbol | y | String | 币种类型符号 | ||
返回json |
{
"code": 200,
"msg": "获取成功!",
"time": 1527841588334,
"data":{
"entrutsHis": [
{
"types": "賣單",
"leftcount": 1.0E-4,
"fees": 0,
"last": 0,
"count": 1.0E-4,
"successamount": 0,
"source": "WEB",
"type": 1,
"price": 1.0E7,
"buysymbol": "",
"id": 947644,
"time": "2018-06-27 17:45:14",
"sellsymbol": "",
"status": "已撤銷"
},
//more data here
],
"entrutsCur": [
{
"types": "買單",
"leftcount": 0.01,
"fees": 0,
"last": 0,
"count": 0.01,
"successamount": 0,
"source": "API",
"type": 0,
"price": 40000,
"buysymbol": "",
"id": 18194814,
"time": "2018-09-07 15:48:44",
"sellsymbol": "",
"status": "未成交"
},
//more data here
]
}
}
参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
step | y | int | 时间:秒 | 60,360,560,1560,3060,6060(1小时),246060(1天),7246060(1周),302460*60(1月) | |
symbol | y | String | 交易对 | 例:btc_gset |
返回 :
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | int | 状态码 | ||
msg | n | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | Array(Array(int)) | K线数据 | ||
返回json |
{
"code": 200,
"msg": "成功",
"time": 1527838104874,
"data": [
[
1527820200000, //int 时间
54598.5, //float 开
54598.5, //float 高
54598.5, //float 低
54598.5, //float 收
0 //float 量
],
//More data here
]
}
参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
step | y | int | 时间:秒 | 60,360,560,1560,3060,6060(1小时),246060(1天),7246060(1周),302460*60(1月) | |
symbol | y | String | 交易对 | 例:btc_gset | |
返回 : | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
code | y | int | 状态码 | ||
msg | n | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | Map | 交易深度数据 | ||
data | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
depth | y | map | |||
period | y | map | 入参step大于0时才有值 | ||
period | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
marketFrom | y | String | 入参symbol | ||
coinVol | y | String | 入参symbol | ||
type | y | long | 入参step,时间 | ||
data | y | Array(Array) | 最后一个k线数据,格式同上,但只有一个 | ||
depth | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
bids | y | Array(Array(long)) | 买盘,[price(成交价), amount(成交量)] | ||
asks | y | Array(Array(long)) | 卖盘,[price(成交价), amount(成交量)] | ||
date | y | long | 时间戳 | ||
lastPrice | y | BigDecimal | 上次成交价 | ||
返回json |
{
"code": 200,
"msg": "成功",
"time": 1527837164605,
"data":{
"period":{
"data": [[
1527837120000,
54598.5,
54598.5,
54598.5,
54598.5,
0
]],
"marketFrom": "btc_gset",
"type": 60,
"coinVol": "btc_gset"
},
"depth":{
"date": 1527837163,
"asks": [
[
57373.8,
0.0387
],
[
57751.26,
0.0128
],
//More data here
],
"lastPrice": 54598.5
}
}
}
参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 | ||
count | y | int | Trades条数 | 0 | |
symbol | y | String | 交易对 | 例:btc_gset |
返回 :
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | int | 状态码 | ||
msg | n | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | Map | 交易深度数据 | ||
data | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
trades | y | Array(map) | trades数据 | ||
sellSymbol | y | String | sellShortName | ||
buySymbol | y | String | buyShortName | ||
trades | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
price | y | long | 成交价钱 | ||
amount | y | String | 成交数量 | ||
id | y | String | 成交id | ||
time | y | String | 成交时间 | ||
en_type | y | String | 成交方向 | "bid","ask" | |
type | y | String | 成交类型 | "买入","卖出" | |
返回json |
{
"code": 200,
"msg": "成功",
"time": 1536315868962,
"data": {.
"sellSymbol": "BTC",
"buySymbol": "GSET",
"trades": [
{
"price": 0.007,
"amount": 66491.04,
"id": 1,
"time": "02:45:08",
"en_type": "ask",
"type": "卖出"
},
//More data here
}
]
}
}
获取用户余额:/v1/balance 参数:
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
AccessKeyId | y | String | 访问key | ||
SignatureVersion | y | String | 版本 | ||
SignatureMethod | y | String | 签名方法 | HmacSHA256 | |
Signature | y | String | ApiSecret | ||
Timestamp | y | String | 时间戳 |
返回 :
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
---|---|---|---|---|---|
code | y | int | 状态码 | ||
msg | n | String | 返回消息 | ||
time | y | long | 当前毫秒数 | ||
data | y | map | 交易深度数据 | ||
data | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
netassets | y | BigDecimal | 净资产 | ||
totalassets | y | BigDecimal | 总资产 | ||
wallet | y | Array(map) | 钱包列表 | ||
wallet | |||||
参数名称 | 是否必须 | 类型 | 描述 | 默认值 | 取值范围 |
------------- | ------------- | ------------- | ------------- | ------------- | ------------- |
id | y | int | 主键ID | ||
uid | y | int | 用户ID | ||
coinId | y | int | 币种ID | ||
total | y | BigDecimal | 可用 | ||
frozen | y | BigDecimal | 冻结 | ||
borrow | y | BigDecimal | 理财 | ||
ico | y | BigDecimal | ico | ||
gmtCreate | y | long | 创建时间 | ||
gmtModified | y | long | 更新时间 |
返回json
{
"code": 200,
"msg": "成功",
"time": 1527835756743,
"data": {
"netassets": 0,
"wallet": [
{
"id": 1,
"uid": 1,
"coinId": 1,
"total": 0,
"frozen": 0,
"borrow": 0,
"ico": 0,
"gmtCreate": 1507626798000,
"gmtModified": 1507626798000,
"loginName": null,
"nickName": null,
"realName": null,
"coinName": "比特币",
"shortName": "BTC",
"logo": null
},
More data here
],
"totalassets": 0
}
}