Skip to main content

2-服务端接口对接说明

1、京东请求合作方服务【java接入方式】,合作方提供可访问的接口地址#

使用提供的jar包,接收京东测调用,接口提供方式为http接口,Accept为text/html,text/javascript,text/html,注意produces配置; 简单例子,入参使用HttpServletRequest接收,返回使用jar包中工具类 ResultBuilder.buildSuccessResult

@RequestMapping("/test")@ResponseBodypublic Map<String, JosResult> index(HttpServletRequest req) {    try {        //获取调用参数        String body = RequestUtil.getBody(req);        //鉴权        boolean isLegal = SignUtils.checkSign(req, body, "申请宙斯后的appSecret");        //body json字符串中获取信息,做业务 todo        //合作方业务处理        //返回结果        return ResultBuilder.buildSuccessResult("根据接口说明返回的结果,比如布尔类型   true   ");    } catch (Exception e) {        return ResultBuilder.buildErrorResult("错误码","错误描述");    }}

2、 京东请求合作方服务【非java接入方式】#

合作方提供可访问的接口地址,并按照说明进行参数签名鉴权,并返回规定格式数据;京东测调用时,会使用以下方式进行调用,链接上可获取到的参数如下表

字段名类型备注
app_keyString宙斯申请应用的key
methodString京东侧调用方法名
vString版本号
signString签名
timestampString时间字符串,格式为:2020-06-29 16:54:41

链接格式如下:

https://www.demo.com/methodName?app_key=D0AAAXXXXX41177CB9A9F6707455CC27&method=jingdong.health.methodName&v=2.0&sign=F692ADA8386C42B41CDD5640711DBAD3&timestamp=2020-06-29+16%3A42%3A40

参数举例:
360buy_param_json:{"column1":1,"column2":1,"column3":"123321","column4":"1,2,3"}
通过上述字段进行签名,具体对接流程如下

a、提供post接口,接口路径
例如:https://www.demo.com/jdnotify
b.处理接入合作方自己的业务
c.返回京东最终处理结果
d.接口进行签名验证

接口获取参数,一种参数从链接上获取5个固定参数,另一种参数从parameter中获取参数,key为360buy_param_json;
获取全部参数后,进行签名验证操作,将获取到的所有参数放入有序map,包含从链接和param中获取的所有参数,map根据key升序排列,map需要排除掉sign参数【sign不参与签名】;
拼接字符串,字符串方式为app_secret+ 上一步所有参数排序key+value +app_secret;
拼接结果如下:

e2180c50df99488badbc7a64qqqqqqqq360buy_param_json{"column1":1,"column2":1,"column3":"123321","column4":"1,2,3"}app_keyD0AAAXXXXX41177CB9A9F6707455CC27methodjingdong.health.methodNametimestamp2020-06-29 16:54:41v2.0e2180c50df99488badbc7a64qqqqqqqq;

对字符串进行md5加密转大写后得到签名sign;
使用得到的签名与传递过来的签名字段进行对比,若相同,则签名验证通过

3、参数说明#

a.入参由2部分组成,链接上获取的5个固定参数,和params中获取的由json串组成的360buy_param_json
b.合作方调用京东侧的相关参数,统一通过宙斯文档查看;京东侧调用合作方的参数通过本文档进行查看
c.所有接口参数均会包含统一入参,统一出参,后续文档只会说明放入360buy_param_json中的业务入参,与放入data中的业务出参
d.京东侧调用合作方需要合作方返回固定参数格式如下

参数名下级参数类型描述
reponse返回结果
---codeString错误码,0000时为正确,京东侧通过0000判断成功
---dataobject返回数据
---uuidString日志id,方便双方对接时获取日志
---errMsgString错误描述,当code不等于0000时,给出错误描述,方便对接查找问题

正确结果:
{"response":{"code":"0000","data":{\"column1\":1,\"column2\":1,\"column3\":\"123\"}}
错误结果:
{"response":{"code":"错误码","errMsg":"错误描述","uuid":"1ded1b62-c60f-4e4f-9620-a78a16b8f284"}}