接口规则说明
<ul>
<li><strong>数据输入</strong></li>
</ul>
<p>header参数:</p>
<ul>
<li>应用id:x-access-appid ,示例值:ty9fd2848a039ab554</li>
<li>用户身份token:x-access-token ,仅需要登录的接口,需要传,此值从登录接口返回</li>
</ul>
<p>Body参数:</p>
<ul>
<li>应用数据</li>
<li>
<p>数据签名,生成见下方签名生成算法</p>
</li>
<li><strong>数据返回</strong></li>
</ul>
<p>返回格式json </p>
<p>{
"status": 1,
"data": {
"user_token": "E5C2F045E398EAC85015B4A03A6DABoQ",
"auto":1,
"key":"session_key"
},
"msg": "登录成功",
"code": 10000
}</p>
<p>参数说明</p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">status</td>
<td style="text-align: left;">int</td>
<td>请求状态,1:成功;0:失败</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">string</td>
<td>错误信息</td>
</tr>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">string</td>
<td>错误代码,10000代表无错误</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td>成功时返回数据</td>
</tr>
</tbody>
</table>
<p>加密盐值app_salt:ec32286d0718118861afdbf6e401ee81</p>
<ul>
<li><strong>签名生成算法:</strong>
1.所有请求参数组装成数组a=[k1:1,k2:2]
2.数组按照键名进行升序排序,得到数组b=[k1:1,k2:2]
3.将数据b序列化成URL的形式,以&进行拼接得到字符串str,str="k1=1&k2=2"
4.通过 md5(sha1(str) + app_salt) 得到签名signature</li>
</ul>
<p>js算法,仅供参考</p>
<p>/**</p>
<ul>
<li>数据加密</li>
<li>@param {*} obj 加密对象</li>
<li>@param {<em>} signKey 加密盐值
</em>/
function getEncrypt(obj, signKey) {
const arr = []
const keys = []
for (const i in obj) {
if (typeof obj[i] !== 'object' && i !== 'signature') {
keys.push(i)
}
}
keys.sort()
for (const i in keys) {
arr[keys[i]] = obj[keys[i]]
}
const arr_str = qs.stringify(arr)
let arr_sha1 = crypto.createHash('sha1').update(arr_str).digest('hex')
arr_sha1 = arr_sha1 + signKey
return crypto.createHash('md5').update(arr_sha1).digest('hex')
<blockquote>
<blockquote>
<p>}</p>
</blockquote>
</blockquote></li>
</ul>