3.参数处理方式
1. 请求参数处理方式
根据套餐确定是否需要加密
如果需要加密,采用aes ecb 加密,对加密后的字节流进行十六进制编码得到十六进制字符串,加密代码见本公司提供的代码示例
所有参数均使用json结构处理后的json字符串,统一参数名为data
假设app_secret 为”1234567812345678”
get,delete 方法:
请求参数放入url
假设有name参数
未加密时需对data进行url 编码( 用于传输url中,签名中使用的data值还是原值 )
url 编码前:
http://127.0.0.1/xxx?data={\”name\”:\”张三\”}
url编码后:
http://127.0.0.1/xxx?data=%7B%22name%22%3A%22%E5%BC%A0%E4%B8%89%22%7D
加密示例:假设对json字符串加密后值为c68d3e8dbc39d1dd9173a5115e9f844a665153ca93234531bfcc468f0dfb8343”,则url为
http://127.0.0.1/xxx?data=c68d3e8dbc39d1dd9173a5115e9f844a665153ca93234531bfcc468f0dfb8343
2. 响应参数处理方式
统一格式为
{
"code":int,
"msg":string,
"data":string
}
其中code为错误码,msg为错误消息,若加密,则data为对结果的json字符串加密后的字符串,若未加密,则data为结果的json字符串
4. 签名方式
text = ts+参数字符串 + app_key + app_secret
sign = md5(text)
若加密则参数字符串使用加密后的
示例:
ts = “123”
app_key = “456”
app_secret = “789”
参数字符串 = “{"name":"张三"}”
text = “123{"name":"张三"}456789”
sign = md5(text)= “e10adc3949ba59abbe56e057f20f883e”