多语言展示
当前在线:541今日阅读:19今日分享:20

Steam饰品机器人对接协议

我们重构了之前的Steam饰品自动交易机器人,提供了标准的Http/Https协议,饰品或者开箱网站可以按照协议自助接入,实现网站自动交易Steam饰品。
工具/原料
1

HTTP/HTTPS

2

JSON

3

Steam

方法/步骤
2

机器人状态查询GET http://bot.5uskin.com/api/steambot/list/接口返回数据结构{  'code': 0,  'body': {    'bots': [      {        'steamid': '705xxxxxxxxxx', // 机器人steamid        'state': 2, // 机器人状态,1 为待登录,2为已登录,3为已离线      }    ]  },  'message': 'Succeed'}

3

发起交易接口POST http://bot.5uskin.com/api/steambot/trade/接口参数包体:{  'steamid': '705xxxxx', // 发起交易的机器人steamid  'my_items': [    // 要交易的我方饰品列表,如果交易我方,则留空数组    {      'appid': 570, // 饰品的appid      'contextid': '2', // 饰品的contextid      'assetid': '' // 饰品的assetid    }  ],  'their_items': [    // 要交易的对方饰品列表,如果不请求对方饰品,则留空数组    {      'appid': 570, // 饰品的appid      'contextid': '2', // 饰品的contextid      'assetid': '' // 饰品的assetid    }  ],   'tradeurl': 'https://steamcommunity.com/tradeoffer/new/?partner=81xxxxxx&token=tOxxxxxx', // 对方的steam报价链接  'cancel_time': 600000, // 订单取消时长,单位毫秒;报价发起后超过该时长后,机器人自动取消报价  'message': 'my trade offer', // steam报价单附带的报价描述信息,  'uid': 'xxxxxxxxxxxxx', // 该笔报价的唯一uuid,报价发起成功后,可以用该uuid查询报价状态}接口响应{  'code': 0,  'body': {    'uid': 'xxxxxxx'  },  'message': 'succeed'}

4

查询交易状态GET http://bot.5uskin.com/api/steambot/trade/接口参数:参数名参数值必需说明uidxxxxxxxx是要查询的报价uuid机器人报价单状态状态值描述0机器人正在排队处理中1交易成功2报价已失败(取消报价也是报价失败11机器人提交报价中12报价发起成功,已经从steam获取到steam报价单号13机器人报价发起完毕,报价单激活中,等待客户接收报价14报价单暂挂报价单在Steam平台状态状态值状态备注场景补充1无效吩截报价该状态下,机器人归类为报价失败,会更新机器人的报价单状态为2 2报价激活中,等待接受报价该状态下,机器人即会更新机器人的报价单状态为 13 3报价已接受该状态下,机器人归类为报价成功,会更新机器人的报价单状态为1 4报价被还价该状态下,机器人归类为报价失败,会更新机器人的报价单状态为2;该场景下,原报价单会被取消,根据客户的还价会产生一个新的报价单(与原报价单单号不同),机器人会忽略新的报价单;例如 机器人报价单#123请求用户A的 item1,item2物品,用户A在排总接收到报价单#123后,点击报价单,操作还价,去掉了#123中的item1,这时#123报价单会被取消,并产生一笔新的报价单 #124,该报价单中为只请求交易item2;机器人将忽略#124报价单5报价已过期该状态下,机器人归类为报价失败,会更新机器人的报价单状态为2 6报价已取消该状态下,机器人归类为报价失败,会更新机怕栗季器人的报价单状态为2 7报价被拒绝该状态下,机器人归类为报价失败,会更新机器人的报价单状态为2 8报价单物品无效该状态下,机器人归类为报价失败,会更新机器人的报价单状态为2例如:报价单#123请求了用户A的库存item1,item2,用户A暂未处理报价单#123,用户A与用户B进行另外一笔报价行为,将用户A的item1交易给了用户B,这时处于激活状态的报价单#123即会因为报价单物品无效而失败11报价单交易暂挂该状态下,机器人会更新机器人的报价单状态为14由于暂挂交易需要等待15天,可能带来场景情况太多,我们建议是将暂挂都归类为报价交易失败接口响应{  'code': 0,  'body': {    'uid': 'xxxxxxxxxxxxx',    'their_items': [      {        'appid': 570, // 饰品的appid        'contextid': '2', // 饰品的contextid        'assetid': '', // 饰品的assetid        'new_assetid': '' // 交易成功后,该饰品的新assetid      }    ],    'my_items': [      {        'appid': 570, // 饰品的appid        'contextid': '2', // 饰品的contextid        'assetid': '' // 饰品的assetid      }    ],    'updatedAt': '2019-04-15T10:02:38.495Z',    'createdAt': '2019-04-15T10:02:07.693Z',    'trade_no': '3538xxxxxx', // 机器人报价发起成功后得到的steam报价单号    'exchanged': true,    'state': 1, // 机器人报价单状态;0表示机器人正在排队处理中,1表示报价交易成功,2表示报价已失败(取消报价也是报价失败),11表示机器人提交报价中,12表示报价发起成功,已经从steam获取到steam报价单号,13表示机器人报价发起完毕,报价单激活中,等待客户接收报价;    'offer_state': 3, // 报价单在steam平台状态,状态信息参加上面的报价单Steam平台状态表格    'cancel_time': 600000,    'tradeurl': 'https://steamcommunity.com/tradeoffer/new/?partner=81xxxxxx&token=tOxxxxxx',    'message': 'my trade offer',    'steamid': '765xxxxxxxxxx'  },  'message': 'succeed'}

5

取消交易POST http://bot.5uskin.com/api/steambot/canceltrade/接口请求参数包体{  'uid': 'xxxxxxx' // 要取消的报价单uuid}接口响应{  'code': 0,  'body': {    'uid': 'xxxxxx',    'trade_no': '2342343255'  },  'message': 'xxxxx'}

6

报价状态回调POST http://www.yoursite.com/api/tradeoffer/callback/报价状态回调由机器人发起,向类似上面这样的你方回调地址回调订单状态变化信息回调包体{  'type': 'tradeoffer',  // 回调类型,默认 tradeoffer,指代报价单  'action': 'update', // 消息类型,默认 update,指代报价单状态更新  'body': {    'uid': 'xxxxxxxxxxxxx',    'their_items': [      {        'appid': 570, // 饰品的appid        'contextid': '2', // 饰品的contextid        'assetid': '', // 饰品的assetid        'new_assetid': '' // 交易成功后,该饰品的新assetid      }    ],    'my_items': [      {        'appid': 570, // 饰品的appid        'contextid': '2', // 饰品的contextid        'assetid': '' // 饰品的assetid      }    ],    'updatedAt': '2019-04-15T10:02:38.495Z',    'createdAt': '2019-04-15T10:02:07.693Z',    'trade_no': '3538xxxxxx', // 机器人报价发起成功后得到的steam报价单号    'exchanged': true,    'state': 1, // 报价单状态;0表示机器人正在排队处理中,1表示报价交易成功,2表示报价已失败(取消报价也是报价失败),11表示机器人提交报价中,12表示报价发起成功,已经从steam获取到steam报价单号,13表示机器人报价发起完毕,报价单激活中,等待客户接收报价;    'offer_state': 3, // 报价单在steam平台状态,状态信息参加上面的报价单Steam平台状态表格    'cancel_time': 600000,    'tradeurl': 'https://steamcommunity.com/tradeoffer/new/?partner=81xxxxxx&token=tOxxxxxx',    'message': 'my trade offer',    'steamid': '765xxxxxxxxxx'  }}回调响应格式{  'code': 0, // code为0 表示接收回调正常,非0表示接受异常  'body': {},  'message': 'ok'}每次报价单status变化时,机器人就会向以上地址发送一次回调;你方收到回调后,应该返回如上格式响应包,code为0 表示接收回调正常,非0表示接受异常;如果回调响应异常,则机器人会再间隔1分钟、10分钟、1小时分别重发一次;如果1小时后仍然返回异常,则机器人不再继续重发;

注意事项

如果在调试过程中遇到问题,请联系海盗海官方

推荐信息