E企盈营销工具技术服务商 热线:4006-838-530

微信小程序支付接口对接总结

E企盈直播平台营销卖货系统

从去年11月进公司到现在,算下来总共对接过三次微信小程序支付接口。现就前端而言,总结一下开发微信小程序支付功能的流程。1.调用预支付接口( openid、 userid这两个必传,以及一些业务参数在这个时候也传到后台),得到交易码out_trade_no 和预支付码prepay_id;2.发送预支付码换回微信支付请求的系列参数:    timeStamp: res.timeStamp,    nonceStr: res.nonceStr,    package: res.package,    signType: ‘MD5’,    paySign: res.sign,3.调用微信支付接口 wx.requestPayment({       timeStamp: res.timeStamp,       nonceStr: res.nonceStr,       package: res.package,       signType: ‘MD5’,       paySign: res.sign,       success: function (paymentRes) {         console.log(paymentRes)         if (paymentRes.errMsg == “requestPayment:ok”) {  // 调用支付成功           console.log(“支付成功!”)           obj.applyAdviser();//业务函数,插入支付记录到数据库         }       },       fail: function (paymentRes) {         if (paymentRes.errMsg == “requestPayment:fail cancel”) {           appcom.showMsgFun(obj, “您取消了支付”);           console.log(“您取消了支付”)         }       }     })4.在success回调函数里执行业务函数完整代码如下,部分参数根据自己业务调整   var openid = wx.getStorageSync(‘openid’);      var userid = wx.getStorageSync(‘userInfo’).uid;      // 调用支付接口发起预支付      appcom.reqFun(this, ”, ‘prepay’, { //第1步:调用预支付接口,获取预支付码和交易码        amount: this.data.amount,        openid: openid, //微信openid        userid: userid,//用户id        type: 1,        relation_id: this.data.lawyerId      }, function (res, obj) {        if (res.out_trade_no == ‘error’ || res.prepay_id == ‘error’) {          console.log(“res.out_trade_no或prepay_id参数错误”);          appcom.showMsgFun(obj, “支付功能暂时无法使用”);          setTimeout(function () {//跳转界面            appcom.goLink(‘../index/index’);          }, 2000);          return;        }        var prepayId = res.prepay_id;        var outTradeNo = res.out_trade_no;        appcom.reqFun(obj, ”, ‘gensig’, {//第2步:发送预支付码,换回时间戳、签名等          prepay_id: prepayId,//预支付码        }, function (res, obj) {          console.log(res)          wx.requestPayment({//第3步:调用微信官方提供的支付接口            timeStamp: res.timeStamp,            nonceStr: res.nonceStr,            package: res.package,            signType: ‘MD5’,            paySign: res.sign,            success: function (paymentRes) {              console.log(paymentRes)              if (paymentRes.errMsg == “requestPayment:ok”) {  // 调用支付成功                console.log(“支付成功!”)                obj.applyAdviser();////第4步:业务函数,插入支付记录到数据库              }            },            fail: function (paymentRes) {              if (paymentRes.errMsg == “requestPayment:fail cancel”) {                appcom.showMsgFun(obj, “您取消了支付”);                console.log(“您取消了支付”)              }            }          })        }, ”, ‘GET’, ”)      }, ”, ‘GET’, ”)注:扩展:未完成订单当用户取消支付的时候,其实订单已经生成,此时将交易码保存,下一次传给后台继续此订单的支付。

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 微信小程序支付接口对接总结
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏