Skip to content

1.2、 公共接口说明


公共参数说明

名称
类型
必选
中文名
说明
appidstring接口接入方需要向接口提供方申请供应商ID
tsstring日期(yyyymmdd)
sigstring请求串的签名,具体见签名算法
formatstring默认json,目前只支持json
useripstring用户IP

签名算法

构造源串

1、将请求的URI路径进行URL编码(URI不含host,URI示例:/ess/master/getstoreinfo)。 请开发者关注:URL编码注意事项,否则容易导致后面签名不能通过验证。
2、 将除“sig”外的所有参数按key进行字典升序排列。
3、 将第2步中排序后的参数(key=value)用&拼接起来,并进行URL编码。
4、 第4步:将HTTP请求方式(GET或者POST)以及第1步和第3步中的字符串用&拼接起来。
注:Java_SDK_V3.0.6仅支持POST方式,如果用GET可能导致一直计算sig不正确。
原串构造示例如下
1、 原始请求信息:
appkey: 368bu094169a50f3bd690ba37ebey7026
请求的URI路径(不含HOST): /ess/master/getstoreinfo
请求参数:appid=1234560987&ts=20190910&format=json&userip=192.168.0.10
2、 开始构造源串
a、 将请求的URI路径进行URL编码,得到: %2Fess%2Fmaster%2Fgetstoreinfo
b、 将除“sig”外的所有参数按key进行字典升序排列,排列结果为:appid,format,ts,userip
c、 将b中排序后的参数(key=value)用&拼接起来:
d、 appid=1234560987&format=json&ts=20190910&userip=192.168.0.10
e、 然后进行URL编码( 编码时请关注URL编码注意事项,否则容易导致后面签名不能通过验证),编码结果为:
appid%3D1234560987
f、 将第2步中排序后的参数(key=value)用&拼接起来:
appid=1234560987&format=json&ts=20190910&userip=192.168.0.10 ,然后进行URL编码( 编码时请关注URL编码注意事项,否则容易导致后面签名不能通过验证),编码结果为:
appid%3D1234560987%26format%3Djson%26ts%3D20190910%26userip%3D192.168.0.10
g、 将HTTP请求方式(GET或者POST)以及编码后的URI和f中得到的字符串用&拼接起来,得到源串:GET&%2Fess%2Fmaster%2Fgetstoreinfo&appid%3D1234560987%26format%3Djson%26ts%3D20190910%26userip%3D192.168.0.10

构造秘钥

得到密钥的方式:在应用的appkey末尾加上一个字节的“&”,即appkey&,例如:
368bu094169a50f3bd690ba37ebey7026&

生成签名值

使用HMAC-SHA1加密算法,使用3.2.2中得到的密钥对3.2.1中得到的源串加密
然后将加密后的字符串经过Base64编码。
得到的签名值结果如下:
签名值:YjGWReNL/WYT3pPQy085dgnJT/A=