总体规范¶
总体概述¶
数据对接采用http请求,默认为post方式。返回的数据结果封装为json格式。
全局参数¶
二维火提供的接口请求都需要传入的参数:
字段说明 | 字段名 | 类型 | 举例 | 可空 |
---|---|---|---|---|
签名数字 | sign | String | 默认签名方式见表格后的sign生成流程说明,
|
N |
用户key | appkey | String | 由二维火分配给合作方,如:1112123 | N |
时间戳 | timestamp | String | 当前时间(单位:毫秒),System.currentTimeMillis(),eg:1369638257423 | N |
版本号 | v | float | 1.0 | N |
调用的方法 | method | String | N | |
应用Id号 | appId | String | 应用Id号, 如:81059038 | Y |
sessionId | sessionId | String | 登录成功后分配的sessionId,某些方法需要登录后调用,此时在调用 登录方法后会回传sessionId,在后续的方法中传入本字段即可 |
Y |
数字签名sign参数生成流程:
每个客户均由二维火分配给一个appkey和一个secret
Map<String,String> map; //map中为请求中的参数及值,均为key-value形式(包含上述所有参数及值,剔除“sign”、“sessionId”、“callback”、”_“ 四个参数)
map.sortByKey; //对map按key字幕顺序排序
String orignString = map.key1+map.value1+...+map.keyn+map.valuen; //将所有的key和value拼接成一个大的字符串
String secretString = secret + orignString + secret; //头尾加上secretkey
String sign = uppercase(hex(sha1(secretString)); //对sceretString作加密运算,并转大写,得到数字签名串
签名会校验时间戳以及sign,如果(当前时间 - 时间戳)大于有效期(30分钟),则认为URL过时。请确保计算签名时使用的timestamp和form内的timestamp值相同,否则会签名校验不通过。
返回数据格式¶
字段说明 | 字段名 | 类型 | 可空(Y/N) | 举例 |
---|---|---|---|---|
状态 | success | Bool | N | true/false |
数据结果 | model | T | Y | 数据结果json中,接口对应的相应结果 |
错误消息 | message | String | Y | 接口返回的错误信息提示 |
错误码 | resultCode | String | Y | 接口返回的错误码提示 |
例子:
返回成功:
{"success":true,"model":[{"orderVo":{"orderId":"9918007957b7ecfe0157b80540810029","entityId":"3344","openTime":20161012163222000,"peopleCount":2,"code":7,"simpleCode":"7300102022","endTime":20161013095752000,"orderFrom":2,"orderType":1,"planName":"打包","planFee":1.0}}],"totalRecord":0}
返回失败: {"success":false,"resultCode":"42","message":"服务方法(dfire.shop.order.list:1.0)使用了非法的店铺编号:33441","totalRecord":0}