- wx.login获取用户临时登录凭证code,发送到后端服务器换取openId
可将商品id传给后端,后端查询出商品价格
经过一定的签名算法,向微信支付发送请求,获取预付单信息(prepay_id)
将获取的数据再次进行相应规则的签名,向小程序端响应必要的信息Taro.login({ success: async res => { if (res.code) { let params = { code: res.code // 微信小程序登录code // 此处可将商品id传给后端,后端查询出商品价格 }; // 调用后端接口,将code传给后端 const result = await XXX(params); this.toPayment(result); } } else { console.log("登录失败!" + res.errMsg); } } });
后端参考如下两个链接,给前端返回所需值
小程序调起微信支付API
JSAPI下单
-
后端接口返回支付验签等内容
toPayment(res) { Taro.requestPayment({ timeStamp: res.timeStamp, nonceStr: res.nonceStr, package: res.package, signType: res.signType, paySign: res.paySign, success: res => { // 支付成功后可执行页面所需要的刷新操作 }, fail: function(res) { Taro.showToast({ title: "支付失败", icon: "error", duration: 2000 }); } }); },