API 调用方式
开放平台API 调用为HTTP 方式,API采用REST风格,开发者需要按一定格式自行拼装HTTP请求进行API 调用,具体可参考实例代码。
一,调用参数
调用API ,必须传入系统参数和应用参数。
1)系统参数详细介绍:
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
method | string | Y | API接口名称 |
timestamp | string | Y | 时间戳,格式为yyyy-mm-dd HH:mm:ss,例如:2015-01-10 12:51:13。服务端允许客户端请求时间误差为10分钟。 |
format | string | N | 可选,指定响应格式。可选值:json |
app_key | string | Y | 应用的AppKey ,appKey和secretKey需要向网聚宝申请 |
v | string | Y | API协议版本,可选值:1.0。 |
sign | string | Y | 对 API 调用参数(除sign外)进行 md5 加密获得。获取方法参考3)签名sign |
sign_method | string | N | 可选,参数的加密方法选择,可选值:md5 |
access_token | string | Y | 通过授权得到的Access Token值。 |
2)应用参数,参见API内的参数说明
3)签名sign
调用API 时服务器需要对请求参数进行签名验证。方法如下:
根据参数名称(除签名和图片)将所有请求参数按照字母先后顺序排序:key + value .... key + value
例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1,参数名和参数值链接后,得到拼装字符串bar2baz3foo1 将secretKey 拼接到参数字符串头、尾。
例如:secretKey为secret123,则得到的字符串为secret123bar2baz3foo1secret123将得到的字符串进行md5加密后,再转化成大写.
JAVA实例代码:
//signContent为拼装后的待加密字符串
String sign= "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(signContent.getBytes("UTF-8"));
byte[] byteData = md.digest();
StringBuilder sb = new StringBuilder();
for(int b : byteData){
b = b&0xFF;
if(b<16)
sb.append('0');
sb.append(Integer.toHexString(b));
}
sign= sb.toString().toUpperCase();
} catch (Exception e) {
e.printStackTrace();
}
二,拼装HTTP请求
所有的参数值转换为UTF-8编码。
查询类API使用GET请求,修改类API使用POST请求
订单请求发送到[http://wop.wangjubao.com/rest/trade](http://wop.wangjubao.com/rest/trade)
会员类请求发送到[http://wop.wangjubao.com/rest/buyer](http://wop.wangjubao.com/rest/buyer)
分组请求发送到[http://wop.wangjubao.com/rest/buyergroup](http://wop.wangjubao.com/rest/buyergroup)
标签请求发送到[http://wop.wangjubao.com/rest/buyerlabel](http://wop.wangjubao.com/rest/buyerlabel)
积分请求发送到[http://wop.wangjubao.com/rest/jifen](http://wop.wangjubao.com/rest/jifen)
营销请求发送到[http://wop.wangjubao.com/rest/ump](http://wop.wangjubao.com/rest/ump)
购物车请求发送到[http://wop.wangjubao.com/rest/shopcart](http://wop.wangjubao.com/rest/shopcart)
收藏夹请求发送到[http://wop.wangjubao.com/rest/favor](http://wop.wangjubao.com/rest/favor)
评价请求发送到http://wop.wangjubao.com/rest/rate
三,错误码
错误码 | 错误描述 | 解决方案 |
---|---|---|
80001 | 未指定 AppKey | 请求时传入 AppKey |
80002 | 无效的AppKey | 申请有效的 AppKey |
80003 | 无效的时间参数 | 以当前时间重新发起请求;如果系统时间和服务器时间误差超过10分钟,请调整系统时间 |
80004 | 请求没有签名 | 请按照协议规范对请求中的参数进行签名 |
80005 | 签名校验失败 | 检查 AppKey 和 SecretKey 是否正确,检查sign生成是否符合要求 |
80006 | 未指定请求的 API 方法 | 指定 Api 方法 |
80007 | 请求非法的方法 | 检查请求方法是否在API中定义 |
80008 | 未指定 Access Token | 请求时传入 Access Token |
80009 | 无效的 Access Token | 传入有效的 Access Token |
81001 | 请求提交失败 | 服务器繁忙,无法接收新的调用请求 |
81002 | 请求方法的参数错误 | 检查方法调用参数 |
81003 | 方法执行失败 | 重新调用 |