收银系统互通

收银系统互通


交互总体说明

<p>[TOC]</p> <h5>基础说明</h5> <ul> <li>接口中的地址,为我司处理数据的地址以及基础的字段,同理适用于对接方,对接方只需要告知接收对应业务的地址即可,我司将按照接口原样传输对应数据;</li> </ul> <h5>加密传输规则</h5> <ul> <li>使用RSA2048位加密公私钥对,敏感信息使用DES3加密传输,如有必要可以加入IP白名单规则;</li> <li>RSA生成可以百度,也可以参考支付宝官方生成的方式:<a href="https://docs.zhifux.com/read/zhifufm/alipayrsa">https://docs.zhifux.com/read/zhifufm/alipayrsa</a></li> </ul> <h5>Java代码请求示例</h5> <pre><code>String des3Key=&amp;quot;双方约定的DES3密钥&amp;quot;; String responseJson = &amp;quot;需要加密的数据&amp;quot;; String privateKey=&amp;quot;客户自己的私钥&amp;quot;; String publickey=&amp;quot;恒强的公钥&amp;quot;; String data = Des3Encryption.encode(des3Key, responseJson);//加密数据 String signature = RSAUtil.sign(data, privateKey);//RSA得到签名 //组装请求参数的封装数据(可以根据自己的情况改动,这里只是作为演示) Map&amp;lt;String, Object&amp;gt; contentData = new HashMap&amp;lt;&amp;gt;(); contentData.put(&amp;quot;signature&amp;quot;, signature); contentData.put(&amp;quot;data&amp;quot;, data); String responseJson1 = JSONObject.toJSONString(contentData); Map&amp;lt;String, Object&amp;gt; requestJsonMap1 = JSONObject.parseObject(responseJson1, Map.class); String responseResult = HttpUtil.doPostJson(&amp;quot;请求地址&amp;quot;, requestJsonMap1); //响应得到签名 String signature1 = (String) map.get(&amp;quot;signature&amp;quot;); //响应得到加密域数据 String responsedata = (String) map.get(&amp;quot;data&amp;quot;); if (!StringUtils.isBlank(signature1)) { boolean b = RSAUtil.verify(responsedata, publickey, signature1);//进行验签 } </code></pre> <h5>请求参数说明</h5> <table> <thead> <tr> <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;">signature</td> <td style="text-align: left;">string</td> <td>请求的签名数据</td> <td>是</td> </tr> <tr> <td style="text-align: left;">data</td> <td style="text-align: left;">string</td> <td>请求加密数据</td> <td>是</td> </tr> </tbody> </table> <h5>7.java返回参数样例</h5> <pre><code>{ &amp;quot;bizType&amp;quot;: &amp;quot;XXXXXAAA&amp;quot;, &amp;quot;data&amp;quot;: &amp;quot;v+QGzpFzCnjHZ+I/2+tfT6/+0y2kgXof0f4A0J8eOxFDTaLdL9NEzq2Wy+yV4NAHyeBA5QokxLsGMlLdSvl7dsAXT26Cag3xf3/5cFsKjBo=&amp;quot;, &amp;quot;signature&amp;quot;: &amp;quot;O+pXuU73QjKb9oCXcAvL1ZP1jZYrPTXSvqEOs1Ci7kPBuUb++GS7BKibznUXMomaLreMYm/e3srhgfmkVj5S8zQcE7cxmTTaOXrbUg8OyHVsHjrHmNJYBX9MJ4vycQB3r7NsqOcFM7C+b5Q/g/+PKVKMuP3e+M8Vv5rY/D8N20xEDDSeEsvUVKbK8WgVHKXbgA58FE4nMFEioUnPKp6yDaWcYCoa2ye8KGm5FEV8wlU751jAWrgrMhWpY4PXMQT7QZtMWWHQ45Z6YwQ16nOX6vA64k2a/A7kT+zUUtkx0CYz9CGle8zDjVo6LrUxtE2BbKNA8zUZuGKgzHbDHduM4w==&amp;quot;, &amp;quot;retCode&amp;quot;: &amp;quot;C0000&amp;quot;, &amp;quot;retMsg&amp;quot;: &amp;quot;成功&amp;quot; }</code></pre> <h5>8.返回参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th style="text-align: left;">说明</th> <th style="text-align: left;">是否必返</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">bizType</td> <td style="text-align: left;">String</td> <td style="text-align: left;">请求的接口</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">data</td> <td style="text-align: left;">String</td> <td style="text-align: left;">加密信息域,需要解密</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">signature</td> <td style="text-align: left;">String</td> <td style="text-align: left;">签名域</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">retCode</td> <td style="text-align: left;">String</td> <td style="text-align: left;">返回码</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">retMsg</td> <td style="text-align: left;">String</td> <td style="text-align: left;">返回信息</td> <td style="text-align: left;">是</td> </tr> </tbody> </table> <h5>备注</h5> <ul> <li>retCode返回码解释如下:C5555:系统处理失败,C9999:系统异常,C0000:处理成功,其余返回码均表示具体的业务失败原因;</li> </ul>

页面列表

ITEM_HTML