springboot接入微信小程序支付,H5支付,APP支付总结
本文主要讲解楼主在使用spingboot框架对接微信各大主流支付时需要做到几个步骤,以及防坑指南。
微信主流支付种类
地址:https://pay.weixin.qq.com/wiki/doc/api/index.html这里主要介绍小程序,App 以及H5支付
一 .小程序支付
文档地址:
这里的展示有限,可访问微信官方文档,建议必传的参数都看一下,这里主要展示必须传递的参数
1.1第一次构造支付部分参数
上图参数构造注意点:
1.total_fee:金额单位为分
2.trade_type: 类型小程序为JSAPI ,其他支付不同
3.notify_url:须是外网可以访问的地址,内部本质也就是一个接口,用来处理回调的成功后的业务逻辑,其次一定要去除接口的系统权限,楼主死活回调不成功,因为url被权限拦截了
1.2第二次构造支付部分参数
刚刚进行第一次构造,然后进行第二次构造,我们进入下面方法
说明:reqData为第一次传递过来的构造,tradeType是项目用来做动态获取appid的大家可以忽略不看。
第二次构造需要注意:
1.nonce_str :随机字符串,不长于32位。推荐随机数生成算法
2.sign :通过签名算法计算得出的签名值,详见签名生成算法
这里使用wx提供的工具类进行生成随机串和签名,注意签名sing是将二次构造完的参数整体进行签名生成的串
1.3请求微信下单
注意:
1.下单地址:https://api.mch.weixin.qq.com/pay/unifiedorder这个地址小程序和app,h5共用同一个地址
2.WxPayUtil.mapToXml wx工具类将请求参数转成xml,并进行签名校验。
微信返回的也是xml响应,使用wx工具类格式化后
1.4 进行响应参数签名处理
获取到prepay_id后将参数再次签名传输给APP发起支付
下单代码中的WxPayUtil.createPayMent方法进行参数处理
微信文档说明