通讯协议
通讯方式
请求:HTTP(S) + JSON
响应:HTTP(S) + JSON报文编码集
- 报文响应报文,均使用UTF-8编码
- 请求格式:POST方式进行提交
- 请求的 Content-Type: application/json
报文签名
报文请求和应答需要经过签名验证,签名数据放在报文的 sign 字段里,具体签名算法如下: 签名生成的通用步骤如下:
1、设所有发送或者接收到的数据为集合 M,将集合 M 内非空参数值的参数按照参数名 ASCII 码从小到大排序(字典序),使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 stringA。
特别注意以下重要规则:
(1) 参数名 ASCII 码从小到大排序(字典序);
(2) 如果参数的值为空不参与签名;
(3) 参数名区分大小写;
(4) 对于 JSON 子域(JSONObject 和 JSONArray),签名时整个子域作为字符串参与签 名,需要注意的是 fastjson 会对字段重新排序,建议用 json-lib 进行序列化。 (5)验证调用返回或主动通知签名时,传送的 sign 参数不参与签名,将生成的签名与该 sign 值作校验。
(6) 接口可能增加字段,验证签名时必须支持增加的扩展字段
2、在 stringA 最后拼接上 key 得到 stringSignTemp 字符串,并对 stringSignTemp 进行 MD5 运算,再将得到的字符串所有字符转换为大写,得到 sign 值 signValue。
文档更新时间: 2020-02-24 20:20 作者:高俭