1.2 接口规范
<p><strong>1 、对接流程 </strong></p>
<ul>
<li>1.1 与技术支持获取测试参数: OrgId,密钥(requestKey),测试车场ID</li>
<li>1.2 对接开发,根据需求选择对接API列表接口</li>
<li>1.3 上线运行,对接调试成功后,向技术支持提供线上车场ID,分配正式参数。</li>
</ul>
<p><strong>2、技术要求 </strong></p>
<ul>
<li>框架协议
<ul>
<li>通讯协议:以 HTTP POST ‘Content-Type: application/json;charset=UTF-8’ 格式请求</li>
<li>请求方式:所有请求参数通过结构化数据(JSON)进行传递</li>
<li>字符编码: UTF-8</li>
</ul></li>
<li>数据内容(3个接口)
<ul>
<li>进出场记录接口(推送)</li>
<li>获取车辆信息接口</li>
<li>缴费回调接口</li>
</ul></li>
</ul>
<p><strong>3、 请求报文结构 </strong></p>
<ul>
<li>公共请求参数</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">字段</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">空</th>
<th>描述</th>
<th>实例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">service</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">否</td>
<td>服务名称</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">version</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">否</td>
<td>版本</td>
<td>01</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">否</td>
<td>时间戳(安全验证)</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">orgId</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">否</td>
<td>机构ID(分配)</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">body</td>
<td style="text-align: left;">Object</td>
<td style="text-align: left;">否</td>
<td>具体接口body详情json对象</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">否</td>
<td>请求签名</td>
<td>请查看签名生成规则</td>
</tr>
</tbody>
</table>
<p><strong>4、 签名加密 </strong></p>
<ul>
<li>所有后台接口均进行加密验证,接入方在调用任何接口时均需要对原始请求进行签名,后台接
口签名进行校验,如果签名不正确,则接口不允许被调用。</li>
<li>签名算法采用 MD5 计算,URL 请求中所有非空的参数值都要参与加密,参数加密的时候要按照
参数名首字母的 ascii 值升序排列,并在拼接的串末尾加上 requestKey,最后将整个串进行 MD5
加密
Sign 生成规则:
(1)将所有参数进行自然排序;
(2)在排序之后的字符串末尾加上参数:
示例:
<code>orgId=Org_2021001&service=inOutList&timestamp=1637029193649&version=V1&carType=0&cashCharge=0.0&epayCharge=0.0&inLane=1&inLaneName=车道1&inTime=2021-09-07 17:53:53&ioStatus=0&needCharge=0.0&outLane=0&parkCode=YDT_42012&parkType=1&plate=粤B12348&uniqueId=420121631008433&fK5OEj4HENZFOU5qokqqwJwhpUB1JRCK</code>
(3)将字符串进行 MD5 加密即为 sign</li>
</ul>