服务热线
010-58959805
伙伴们,为了保证数据对接顺利进行,请先阅读以下问题,保证信息对称^^
Q:京东万象是否支持参数加密?
A:支持,只需在接口设置>添加参数>状态,选择“模板参数”后,即可在“示例值”中填写对应的函数规则,目前支持的加密方式见加密方法及使用介绍。
Q:京东万象接口对接是否支持文件上传?
A:目前仅支持图片类文件,只需在接口设置>添加参数>状态,为body参数选择“模板参数”类型,勾选“文件”复选框,在“示例值”中填写对应的函数规则。注意:wxImage图片占位符是固定的,具体见示例。
Q:京东万象是否支持http协议中的body、header及query位置设置?
A:支持。
Q:京东万象如何处理常量类参数?
A:只需在接口设置>添加参数>状态,选择“常量参数”即可设置,用户在平台接口文档中不可见此参数,在调用时也无需传值。
1.模板参数支持的加密方法及使用方法
1.1 接口参数设置示例
(1)假设需要进行加密设置的“参数名称”为test(如图)
(2)test的“类型”为string(下拉选择)
(3)test的“状态”为Template(下拉选择)
(4)test的“位置”为Query(下拉选择)
(5)test的“示例值”为#set($param=$EPT.base64($data))#set($param=$EPT.md5Hex($param))$param
1.2 参数加密示例注释
(1)使用base64方法对“参数”data进行加密,并将结果赋值给$param
(2)使用md5Hex方法对上一步得到的结果参数param进行加密,并将结果赋值给$param
(3)通过$param将最终结果赋值给“参数”test
1.3 模板参数注意事项
(1)需要被模板参数引用的参数必须在模板参数前面录入
如:须先录入参数data,参数test才能生效
(2)加密方法只能顺序执行,不支持嵌套
如:#set($param=$EPT. md5Hex($EPT.base64($data)))$param ----X
#set($param=$EPT.base64($data))#set($param=$EPT.md5Hex($param))$param ----√
2、加密方法及使用介绍
方法介绍 | 方法名 | 如何使用 | 备注 |
base64加密 | base64 | #set($param=$EPT.base64($data))$param | $data为需要被加密的字符串 |
md5加密 | md5Hex | #set($param=$EPT.md5Hex($data))$param | $data为需要被加密的字符串,返回值为小写字符串 |
aes3加密 | aes3 | #set($param=$EPT.aes3($key,$data))$param | $data为需要被加密的字符串,$key为密钥,位置不能互换 |
des加密 | des | #set($param=$EPT.des($key,$data))$param | $data为需要被加密的字符串,$key为密钥,位置不能互换 |
des加密 | des2 | #set($param=$EPT.des2($data,$key))$param | $data为需要被加密的字符串,$key为密钥 |
通用3des加密 | des3 | #set($param=$EPT.des3($data,$key))$param | $data为需要被加密的字符串,$key为密钥 |
sha256加密 | sha256 | #set($param=$EPT.sha256($data))$param | $data为需要被加密的字符串 |
rot13转换 | rot13 | #set($param=$EPT.rot13($data))$param | |
unicode | unicode | #set($param=$EPT.unicode($data))$param | |
urlencode | urlEncode | #set($param=$EPT.urlEncode($data))$param | |
uuid | uuid | #set($param=$EPT.uuid())$param | uuid为万象自动生成的单次调用唯一标识,可以用作商家对用户的订单号 |
单层json串 | json | #set($param=$EPT.json("key1",$value1,"key2",$value2,"key3",$value3))$param | $valueN可以是固定值,可以是字符串,也可以是变量。如:$value1对应的值为1,$value2对应的值为“value2”,$value3对应的值为$data,则json结果示例为 {"key1":1,"key2":"value2","key3":$data} |
多层json串 | multilayerJson | #set($value2=$EPT.multilayerJson("level1",$value1)) #set($param=$EPT.multilayerJson("level2",$value2))$param |
$valueN可以是固定值,可以是字符串,也可以是变量,最前面设置的方法是json最内层的KV。如:$value1对应的值为“abc”,则json结果示例为 {"level2":{"level1":"abc"}} |
大写16位md5加密 | md5U16 | #set($param=$EPT.md5U16($data))$param | $data为需要被加密的字符串 |
小写16位md5加密 | md5L16 | #set($param=$EPT.md5L16($data))$param | $data为需要被加密的字符串 |
字符串拼接 | —— | #set($param="string"+$data)$param | 支持字符串及变量的拼接 |
字符串转大写 | upper | #set($param=$EPT.upper($data))$param | |
字符串转小写 | lower | #set($param=$EPT.lower($data))$param | |
时间戳 | timestamp | #set($param=$EPT.timestamp())$param | 1501845250 |
当前指定格式的时间 | timeFormat | #set($param=$EPT.timeFormat(yyyyMMdd))$param | 把当前时间按照商家指定格式进行输出,亦可自定义其他格式,如:yyyy-MM-dd |
获取当前时间12小时制 | time12 | #set($param=$EPT.time12())$param | yyyyMMddhhmmss |
获取当前时间24小时制 | time24 | #set($param=$EPT.time24())$param | yyyyMMddhhmmss |
3、模板参数使用具体示例一
3.1 示例接口文档(普通加密类接口)
用户需要录入的参数公司名称queryString,商家需要的参数如下所示,通过post请求提交,类型为json格式。
3.2 示例分析过程
(1)业务请求参数queryString,封装成json格式
(2)将json串通过3DES进行加密
(3)加密后的字符串进行base64编码
(4)将version+charset+time+orderNo+data这几个数据连接在一起,进行MD5加密
(5)checksign数据转大写
3.3 示例参数录入
4、模板参数使用具体示例二
4.1 示例接口文档(图片识别类接口)
4.2 示例分析过程
实现各个参数变量的拼接
4.3参数录入示例一(拆解录入)
优劣:前期录入稍复杂,后续修改较简单;会在服务端接收的qurey中接收到各个常量参数
4.4参数录入示例二(拼接录入)
优劣:前期录入较简单,后续修改稍复杂;在服务端接收的qurey中不包含拼接的参数
Copyright © 2012-2020 JDCloud.com 版权所有 京ICP备11041704号-31 京ICP证070359号 隐私声明