通讯和请求验证
<h4>通讯方式</h4>
<p>通讯协议:http
通讯格式:json
通讯地址:<a href="http://api.yibeidiao.com">http://api.yibeidiao.com</a>
企业api基础链接:<code>/open/company</code>
<code>通讯方式为网络传输,所有请求都必须经过验证(sign参数),推荐企业对所有正常响应进行验签。</code></p>
<h4>验证方式</h4>
<p><strong>所有请求</strong>需要在 request header 中加入验证信息</p>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>key</td>
<td>string</td>
<td>企业key,用来表明企业身份,参考<a href="https://www.showdoc.cc/ybd?page_id=1864080192995858" title="准备工作">准备工作</a></td>
</tr>
<tr>
<td>ts</td>
<td>string</td>
<td>时间戳,当前系统时间,格式为“yyyyMMddHHmmss”</td>
</tr>
<tr>
<td>seq</td>
<td>string</td>
<td>业务流水号,企业系统中的业务流水标识,幂等判断依据</td>
</tr>
<tr>
<td>sign</td>
<td>string</td>
<td>摘要签名</td>
</tr>
</tbody>
</table>
<p><strong>摘要签名计算规则</strong></p>
<blockquote>
<p>通讯采用MD5摘要签名方式进行验证,签名(sign)规则为:签名=MD5(key+ts+seq+token)</p>
</blockquote>
<p><code>token只用来签名和验签,请勿通过网络明文传输</code></p>
<p><strong>摘要签名计算例子</strong></p>
<table>
<thead>
<tr>
<th>变量名</th>
<th>变量值</th>
</tr>
</thead>
<tbody>
<tr>
<td>key</td>
<td>CF6BF781AB82FEF5BFDF96B054ECEB15</td>
</tr>
<tr>
<td>token</td>
<td>8FD2867925098ECFA5DC1DB15B5A3E79</td>
</tr>
<tr>
<td>ts</td>
<td>20190102145555</td>
</tr>
<tr>
<td>seq</td>
<td>N123456</td>
</tr>
</tbody>
</table>
<blockquote>
<p>key、ts、seq必须与header中一致</p>
</blockquote>
<pre><code>签名(sign)
=MD5(key+时间戳+业务流水号+token)
=MD5(CF6BF781AB82FEF5BFDF96B054ECEB1520190102145555N1234568FD2867925098ECFA5DC1DB15B5A3E79**)
=65F3CB60DDEA32F61A0AA3D06D5AC348</code></pre>
<h4>时间戳有效期验证</h4>
<blockquote>
<p>时间戳字段(ts)将被验证有效期,验证规则为时间戳左右2分钟窗口。
例子:时间戳(ts)为 20190301<strong>093000</strong> ,则当请求到达服务器时间在 20190301<strong>092800</strong> ~ 20190301<strong>093200</strong> 则有效</p>
</blockquote>
<h4>幂等验证</h4>
<blockquote>
<p>业务流水号(seq)将被验证唯一性</p>
</blockquote>
<h4>参考</h4>
<p><a href="https://www.showdoc.cc/ybd?page_id=1873114820296975" title="验证企业配置">验证企业配置</a></p>