流程图
实现基本思路
要知道每个人openID都是不同的,它是用户身份识别的id,也就是说,为了知道谁在支付,我们需要先获取当前用户的openid,通过openID来区分不同的用户,所以
首先使用小程序调用登陆接口通过wx.login()获取临时的登录权限code,在使用wx.request并把它传到开发者服务器( 【url:商户服务器登陆url ,code: code,method: ‘ 方法 ’ ,建议使用post安全,以及获取成功的函数和获取失败的函数 】)用来获取用户唯一标识的openid 和 会话密钥session_key,可以在获取成功的函数里获取一个token来进行用户验证,并将token存在小程序缓存中,
然后再调用一下下单接口,获取预支付信息prepay_id,将组合数据再一次签名,调用支付函数,会出现几种可能:
1,直接弹出支付,取消支付的话,去别的也页面,
2,如果购买余额足够 使用余额支付,需要传token,和订单id,
3,余额不够,取消支付不再支付,2,通过WXAPI.wxpay调用微信余额进行支付,确定支付时:通过wx.requestPayment()获取五个参数后,调起支付
//五个重要的参数
timeStamp: res.data.timeStamp, //时间戳
nonceStr: res.data.nonceStr,,//随机字符串
package: res.data.package,//订单详情扩展字符串
signType: res.data.signType//签名方式
paySign: res.data.paySign,//签名
出现支付成功(【出现二维码扫码支付】)与支付失败(【网络不佳】)两种情况