微信小程序支付流程
1、商户接入文档资料
2、商家注册商户号,得到商户密钥之类的东西
3、后台处理
4、前端调用
1、商户接入文档资料
微信支付接入官网>>https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F
小程序支付开通流程>>https://pay.weixin.qq.com/static/product/product_intro.shtml?name=miniapp
小程序支付后端开发文档>>https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1
小程序支付前端开发文档>>https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html
(微信小程序API->开放接口->支付)
2、商家注册商户号,得到商户密钥之类的东西
搜索微信支付,https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F,进入该链接后,点击【接入指引】->【我有小程序】->【接入微信支付】->【注册微信支付商户号】,
微信扫码,填写对应的商户资料,提交合法数据后要审核大致3个工作日,审核通过后发邮箱通知你。
3、后台处理
微信小程序支付后端java代码参考>>https://www.jianshu.com/p/a9f978dc1a3e
先梳理下后端支付流程的逻辑>>https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=4
(1)调用统一下单接口(API列表里的第一个接口),需要先获取到Openid用户标识,具体可参考该文档(微信小程序的授权登录)>>https://blog.csdn.net/dwb123456123456/article/details/84251932
(2)五个字段参与签名,除了appId,其它四个参数是微信小程序前端支付接口wx.requestPayment需要用的
(3)商户配置页面和项目中的回调地址要一样,是支付完成后微信回调到自己后台的地址
报错示例:
(1)统一下单接口中的out_trade_no是商户系统内部订单号,值的长度不能太短,比如"1","123"之类的
(2)wx.requestPayment的timestamp参数要后端的时间戳转化成字符串返回,否则前端会报签名错误
(3)统一下单接口中的total_fee,订单总金额,单位为分,所以测试数值最小为1,不能输入小于1的值,如0,0.01,否则会报该参数不存在之类的错误
4、前端调用
根据前端开发文档直接调用微信小程序的支付接口就行了。https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html
(注意:前端调用支付接口前得先完成用户授权登录才行,具体可参考该文档(微信小程序的授权登录)>>https://blog.csdn.net/dwb123456123456/article/details/84251932)
//前端调用该接口前先调用己方后台接口得到以下参数即可,即timeStamp、nonceStr、package、paySign
wx.requestPayment({ timeStamp: '', nonceStr: '', package: '', signType: 'MD5', paySign: '', success (res) { }, fail (res) { } })