🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 协议规则 * * * * * <table> <tbody> <tr> <th width="15%">传输方式</th> <td>为保证交易安全性,采用HTTPS传输</td> </tr> <tr> <th>提交方式</th> <td>采用POST方法提交</td> </tr> <tr> <th>数据格式</th> <td>提交和返回数据都为Json格式,基本数据 { "result_code":"OK", "result_msg":"SUCCESS", "charge": { } }</td> </tr> <tr> <th>字符编码</th> <td>统一采用UTF-8字符编码</td> </tr> <tr> <th>签名算法</th> <td>RSA2,后续会兼容SHA1、MD5等。</td> </tr> <tr> <th>签名要求</th> <td>请求和接收数据均需要校验签名</td> </tr> <tr> <th>证书要求</th> <td>所有API操作都要求使用证书</td> </tr> <tr> <th>判断逻辑</th> <td>先判断协议字段返回,再判断业务返回,最后判断交易状态</td> </tr> </tbody> </table> ### 参数规范 * * * * * 1、交易金额 交易金额默认为人民币交易,接口中参数支付金额单位为【元】。 2、交易类型 WXSCAN--微信扫码支付、QQSCAN--QQ扫码支付,统一下单接口channel的传参可参考这里 3、货币类型 货币类型的取值列表: CNY:人民币 ### 签名算法 * * * * * >[success]第一步:设所有发送或者接收到的数据为集合A,将集合M内非空参数值的参数按照参数名`ASCII`码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串`string`。 特别注意以下重要规则: ◆ 参数名ASCII码从小到大排序(字典序); ◆ 如果参数的值为空不参与签名; ◆ 参数名区分大小写; ◆ 验证调用返回或支付中心主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。 ◆ 支付中心接口可能增加字段,验证签名时必须支持增加的扩展字段 >[warning]第二步:在`string`最后拼接上`key`得到`stringSignTemp`字符串,并对`stringSignTemp`进行`Base64`运算,再将得到的字符串所有字符转换为大写,得到`sign`值并入RSA进行签名运算得出最后的`signature`。 >商户中心会分配业务系统key,业务系统会有API请求key以及商户公钥`cretKey`: `key:业务系统请求支付中心对应的key ` `cretKey:支付中心业务系统数据处理Key` >[danger]示例 :`RmLCFirMbwv1I9s3Wdq6sTzLYOQrMm/ZlHZFj+oyNToFFJzAx79pG+aCMJ56v81vmtIlCrksvXCyXlW4QqJJGF0HfM23ypB6hK2DWDeIO8irluig7mbx7BjlKPl30yCMejdnIVBYNh2v4oVF+85M2IgsdDpeyWhPofXfyxmKU6ibIr5U+Ir6CNjtvX9PRVSk9PbChmwKNuOzAGRRc0qCLXumD118huaWTa2kKemyInt2CvU6hbxkG0G5Xq0Xt86aduLwGXFzNGVhusb00nQVa44GkzOQ2+4BBQrYFZ1ZY9NQZz/OSgwOcNJ4Q1NY1uQVdL9cHhX15sdYgt2zjxLnwg==`