参数加密规则-京东万象-帮助中心
京东万象用户认证公告

各位亲爱的用户:
您好!为了给您提供更优质的售后服务,保障您在平台获得更多权益,需要您登录用户中心完成用户认证操作。完成用户认证后,您可在平台顺利购买数据。

若用户未完成用户认证操作,或将影响您的购买体验,望各位用户知悉。

定制需求

内容不可为空
内容不可为空
请输入姓名
联系方式不可为空
当前所在位置:首页>帮助中心

参数加密规则

伙伴们,为了保证数据对接顺利进行,请先阅读以下问题,保证信息对称^^

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中不包含拼接的参数

扫码关注
返回顶部