通信规范
<h2>签名算法</h2>
<ul>
<li><strong>appId和apiKey在平台 "API通信功能" 中设置和查看;</strong></li>
</ul>
<p><strong>签名生成的通用步骤如下:</strong>
<strong>第一步</strong>,设所有发送的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:</p>
<ul>
<li>参数名ASCII码从小到大排序(字典序);</li>
<li>如果参数的值为空不参与签名;</li>
<li>参数名区分大小写;</li>
</ul>
<p><strong>第二步</strong>,在stringA最后拼接上apikey得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。</p>
<hr />
<p><strong>举例:</strong>
假设发送的参数如下:</p>
<pre><code class="language-css">appId : rtyopipogh
simId : 8986061910002738822
timeStamp : 1596641631</code></pre>
<p>第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:</p>
<pre><code class="language-css">stringA = "appId=rtyopipogh&simId=8986061910002738822&timeStamp=1596641631";</code></pre>
<p>第二步:拼接API密钥:</p>
<pre><code class="language-css">stringSignTemp = stringA + "&apiKey=53b643a4bb6dfdad02494d8503a27d91" //注:apiKey在平台Api通信项中查看
sign = md5(stringSignTemp).toUpperCase() //注:MD5加密后,把字符串转换为大写</code></pre>
<p>得到最终发送的数据(以下数据只用于示例,不具备真实性):</p>
<pre><code class="language-css">"appId=rtyopipogh&simId=8986061910002738822&timeStamp=1596641631&sign=FE92CF150D924F4D3A7F8C2E6DD98AF5";</code></pre>
<ul>
<li>timeStamp字段说明
timeStamp字段主要用于保证签名不可预测,其取值为当前时间UNIX时间戳(秒级),平台允许误差为10分钟,请确保发送端的时间准确性。</li>
</ul>