X

交易API说明

发表于: 2014-05-07 17:01


一、API使用说明

1、请求过程

 

    1.1 构造请求数据。用户根据BTC100提供的接口规则,通过程序生成签名和要传输给BTC100的数据集合。

    1.2 发送请求数据。把构造完成的数据集合,通过表单POST提交的方式传递给BTC100。

    1.3 返回处理的结果数据。BTC100对发送的请求数据进行校验和处理,对于处理完成的数据,BTC100会以JSON格式把数据反馈给用户。

    1.4 对获取的返回结果数据进行处理。

    1.5 为了确认您的帐户安全,交易API支持https请求

2、安全认证

2.1 申请成为开发者

    用户可以在“成为开发者”里自助申请成为开发者,申请后用户会获得

        partner:签约的唯一邀请码

        secretKey:用于对请求参数签名的私钥

    请勿向任何人泄露这两个参数,这像您的密码一样重要

  2.2 签名机制

    2.2.1 需要签名的参数在请求参数列表中,除去sign和partner外,其他需要使用到的参数都是要签名的参数。

    2.2.2 生成待签名的字符串

      对于如下的参数数组:

        string[] parameters={"method= trade", "symbol=btc_cny", "type=buy", "rate=680", "amount=1.0"};

          对数组里的每一个值从a到z的顺序排序,若遇到相同首字母,则看第二个字母,以此类推。

      排序完成之后,再把所有数组值以“&”字符连接起来,如:

        amount=1.0&method=trade&rate=680&symbol=btc_cny&type=buy

      这串字符串便是待签名字符串。

    2.2.3 MD5签名

     在MD5签名时,需要私钥secretKey参与签名。

  当拿到请求时的待签名字符串后,需要把私钥直接拼接到待签名字符串后面,形成新的字符串,比如amount=1.0&method= trade &rate=680&symbol=btc_cny&type=buysecretKey,请注意,secretKey前面不需要&,利用32位MD5算法 签名函数对这个新的字符串进行签名运算,从而得到签名结果字符串(该字符串赋值于参数 sign),MD5计算结果中字母全部大写。

 

3、接口

    URL: https://www.btc100.org/api/userinfo

  支持格式:JSON

  HTTP请求方式:POST

    返回结果的格式:JSON

    3.1 获取用户信息

   请求参数

名称
必选类型及范围说明
partnertruestring

签约的唯一户号

signtruestring在对请求的参数做签名
methodtruestring请求的方法(getuser)

        返回结果
     {"result":true,
       "info":{"funds":{
         "free":{
           "cny":1000,
           "btc":10,
           "ltc":0
           },
        "freezed":{
          "cny":1000,
          "btc":10,
          "ltc":0
          }
         }
      }}

       free表示帐户余额,freezed表示冻结余额。

        返回错误代码:
    {"result":false,"errorCode":10000}

    3.2 下单交易

        请求参数

名称
必选类型及范围说明
partnertruestring签约的唯一户号
symboltruestring当前货币兑(btc_cny,ltc_cny,doge_cny)
typetruestring买卖类型(buy/sell)
ratefalsestring限价单必须填写(价格,大于等于0,小于等于99999)
amountfalsestring限价单必须填写(交易量,BTC,LTC,DOGE最小以平台为准)
signtruestring在对请求的参数做签名
methodtruestring请求的方法(trade)

        返回结果
     {"result":true,"order_id":123456}

    3.3 撤销订单

        请求参数

名称
必选类型及范围说明
partnertruestring签约的唯一户号
order_idtruelong订单号
symboltruestring当前货币兑(btc_cny,ltc_cny,doge_cny)
signtruestring

在对请求的参数做签名

methodtruestring请求的方法cancelorder

  3.4 获取用户挂单

   请求参数


名称
必选类型及范围说明
partnertruestring签约的唯一户号
order_idtruelong订单号(-1查询全部挂单,否则查询相应单号的挂单)
symboltruestring当前货币兑(btc_cny,ltc_cny,doge_cny)
signtruestring

在对请求的参数做签名

methodtruestring请求的方法getorder


   3.5 获取用户交易记录

   请求参数


名称
必选类型及范围说明
partnertruestring签约的唯一户号
currentPagetruelong当前页码
pageLengthtruetruelong每页数据条数
symboltruestring当前货币兑(btc_cny,ltc_cny,doge_cny)
signtruestring

在对请求的参数做签名

methodtruestring请求的方法(gettrade)

返回值
{"result":true,"tradelist":[{"amount":11,"tradeid":10000,"rate":20,"status":1,"currentPage":"1","type":"buy","datetime":"2014-12-16 16:08:29","pageLength":"30"}]} 

4、错误代码对照表

错误代码 

详细描述

10000 

必选参数不能为空

10002 

系统错误

10003 

未在请求限制列表中,稍后请重试

10005

密钥不存在 

10006

用户不存在 

10007

签名不匹配

10008

非法参数

10009

订单不存在

10010

余额不足

10011

买卖的数量小于BTC/LTC最小买卖额度

10012

当前网站暂时只支持btc_cny ltc_cny doge_cny

10014

下单价格不得≤0或≥99999

10015

下单价格与最新成交价偏差过大

二、 API常见错误代码和相关说明

1. 申请成为开发者

    申请成为开发者后您将获得以下信息

    partner:(如:AB339AD521C284D6)

    secretKey:(如:19535CF3D949D4EF56F8D3D4ED78C505)

2. 变量说明

    sign:MD5(partner=method+secretKey)注意+是连接字符串

    例如:

    sign:MD5(method=getuser19535CF3D949D4EF56F8D3D4ED78C505)

    MD5加密后结果为:9EE64E2D857681C886E0D5FD3DAF26DD

    URL:https://www.btc100.org/api/userinfo

    post参数为:partner= AB339AD521C284D6, method=getuser, sign=9EE64E2D857681C886E0D5FD3DAF26DD

    请注意:post请求头信息不要写成contentType:'application/json'

    应该采用contentType:'application/x-www-form-urlencoded'才 能正确被服务器解析。

3. 常见错误代码解决方案说明:

错误代码

错误原因分析 

10000

必选参数不能为空,先检查post结构体有没有未提交的参数,然后检查请求头,如果你的请求头写成了contentType:'application/json'你必须把参数写在链接后面用post方式提交才能被正确解析,例如:
https://www.btc100.org/api/userinfo?partner=AB339AD521C284D6&method=getuser&sign=BAAC5822F75025C8E697374A1009F665

10005

密钥不存在没有partner对应的secretKey记录,post结构体中partner参数不正确 

10007

签名不匹配:post结构体与MD5签名不匹配,post结构体被篡改,请检查MD5的签名结果: 

多个参数按照字母a-z排序用a=a&b=b&c=c+secretKey连接然后一起MD5 

例如:请求https://www.btc100.org/api/userinfo 

你的post参数为 amount=0.11 partner=23234 rate=4234.0 symbol=btc_cny type=buy 

MD5加密前的字符串: 

amount=0.11&partner=45678912&rate=4336.0&symbol=btc_cny&type=buy32432432432432505 

sign的结果为:WE23424SWREWR2342342

post参数为: amount=0.11 partner=4333912 rate=336.0 symbol=btc_cny type=buy sign=23432423432