聚合支付接口文档

聚合支付接口文档


签名规则

<h2>1.数据 加密 规则</h2> <h3>1.1 通过时间戳(毫秒)生成16位随机字符串 -&gt; AES-KEY</h3> <ol> <li><code>timestamp</code>:时间戳(毫秒)</li> <li><code>aes-key</code>: timestamp 通过 SHA-256 加密取 4-20 位的获得随机字符</li> </ol> <h3>1.2 根据获取的 AES-KEY 为密钥,对所有参数进行 AES 加密</h3> <ol> <li>指定 AES 加密算法,ECB 模式,PKCS5Padding 填充方式</li> <li><code>AES/ECB/PKCS5Padding</code></li> <li><code>sign</code>&amp; <code>timestamp</code> &amp; <code>merchantNo</code> <strong>不参与加密</strong></li> </ol> <h2>2.签名 规则</h2> <h3>2.1 签名规则</h3> <ol> <li><strong>签名、验签 的时候需要把这两个字段排除 </strong>【<code>sign</code>&amp; <code>merchantNo</code>】</li> <li>将 <strong>加密后</strong> 的请求参数按照 a-z 排序并用【&amp;】拼接,如【a=1&amp;b=2&amp;c=3】</li> <li><strong>商户KEY</strong> 和 <strong>时间戳:timestamp </strong> 不参与 a-z 的排序</li> <li>在参数拼接后,拼接 <strong>商户KEY</strong> 和 <strong>时间戳:timestamp </strong>,得到【a=1&amp;b=2&amp;c=3&amp;key=&quot;keyStr&quot;&amp;time=1700……】</li> <li>将拼接完成的字符串通过 <code>MD5</code> 加密,结果转为大写,得到【<code>sign</code>】值</li> <li>将【<code>sign</code>】和【<code>timestamp</code>】和【<code>merchantNo</code>】添加到请求的JSON数据里</li> <li><strong>时间戳:timestamp</strong> 只在验签的时候只有 10分钟 内有效</li> </ol> <h3>2.2 验签规则</h3> <ol> <li>验签的时候判断【<code>timestamp</code>】是否在 10分钟 以内,超时验签失败 <strong>(推荐)</strong></li> <li>验签通过前面的签名方式,获取到【<code>sign</code>】再对比接口参数里的【<code>sign</code>】对比是否一致</li> </ol> <hr /> <h2>加密、签名工具 DEMO</h2> <p>[【JAVA】AES加密DEMO](/payp/11558643234173824 &quot;【JAVA】AES加密DEMO&quot;)</p> <p>[【JAVA】签名DEMO](/payp/11558643241781511 &quot;【JAVA】签名DEMO&quot;)</p>

页面列表

ITEM_HTML