通企付

基于核心企业资金流动智能管理平台


安全规范

<h1>签名算法</h1> <p>签名生成的通用步骤如下:</p> <p>第一步:设所有发送或者接收到的数据为集合M ,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序 (字典序) ,使用URL键值对的格式 (即key1=value1&amp;key2=value2… ) 拼接成字符串stringA。 特别注意以下重要规则: ◆ 参数名ASCII码从小到大排序 (字典序) ; ◆ 如果参数的值为空不参与签名; ◆ 参数名区分大小写; ◆ 验证调用返回或支付中心主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验;</p> <p>第二步:在stringA最后拼接上key[即 StringA +&quot;&amp;key=&quot; + 私钥 ] 得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字 符串所有字符转换为大写,得到sign值signValue。注:RSA和SM2不需要拼接key。</p> <pre><code>Map signMap = new HashMap&amp;lt;&amp;gt;(); signMap.put(&amp;quot;platId&amp;quot;, &amp;quot;1000&amp;quot;); signMap.put(&amp;quot;mchOrderNo&amp;quot;, &amp;quot;P0123456789101&amp;quot;); signMap.put(&amp;quot;amount&amp;quot;, &amp;quot;10000&amp;quot;); signMap.put(&amp;quot;clientIp&amp;quot;, &amp;quot;192.168.0.111&amp;quot;); signMap.put(&amp;quot;returnUrl&amp;quot;, &amp;quot;https://www.baidu.com&amp;quot;); signMap.put(&amp;quot;notifyUrl&amp;quot;, &amp;quot;https://www.baidu.com&amp;quot;); signMap.put(&amp;quot;reqTime&amp;quot;, &amp;quot;20190723141000&amp;quot;); signMap.put(&amp;quot;version&amp;quot;, &amp;quot;1.0&amp;quot;);</code></pre> <p>待签名值:</p> <pre><code>amount=10000&amp;amp;clientIp=192.168.0.111&amp;amp;mchOrderNo=P0123456789101&amp;amp;notifyUrl=https://www.baidu.com&amp;amp;platId=1000&amp;amp;reqTime=20190723141000&amp;amp;returnUrl=https://www.baidu.com&amp;amp;version=1.0&amp;amp;key=EWEFD123RGSRETYDFNGFGFGSHDFGH</code></pre> <p>签名结果:4A5078DABBCE0D9C4E7668DACB96FF7A</p> <p>最终请求支付系统参数:</p> <pre><code>amount=10000&amp;amp;clientIp=192.168.0.111&amp;amp;mchOrderNo=P0123456789101&amp;amp;notifyUrl=https://www.baidu.com&amp;amp;platId=1000&amp;amp;reqTime=20190723141000&amp;amp;returnUrl=https://www.baidu.com&amp;amp;version=1.0&amp;amp;sign=4A5078DABBCE0D9C4E7668DACB96FF7A</code></pre>

页面列表

ITEM_HTML