小程序支付流程详解

来源:互联网 发布:巩义网络招聘平台 编辑:程序博客网 时间:2024/05/29 11:43

世界上最简单的微信支付SDK, 小程序支付流程详解

第1步.客户端获取登录凭证code, 并发送请求到服务端, 示例如下:

wx.login({  success: function(res) {    if (res.code) {      //发起网络请求      wx.request({        url: 'https://test.com/pay',  // 获取预支付参数地址        data: {          code: res.code        },        success: function(res) {          // 第3步处理        }      })    } else {      console.log('获取用户登录态失败!' + res.errMsg)    }  }});

第2步.服务端调用扩展库方法, 获取预支付信息返回给客户端

\wxpay\JsapiPay::getPayParams($params, $code)


第3步.返回json字符串到客户端

wx.login({  success: function(res) {    if (res.code) {      //发起网络请求      wx.request({        url: 'https://test.com/pay',  // 获取预支付参数地址        data: {          code: res.code        },        success: function(res) {          // 第3步处理          wx.requestPayment({            timeStamp:res.timeStamp,            nonceStr:res.nonceStr,            package:'prepay_id=' + res.prepayId, // 这里千万注意, 前面要加 'prepay_id='            signType:'MD5',            paySign:res.data.data.sign,            success:function () {              console.log('支付成功');            },            fail:function (res) {              console.log('支付失败');            }          })        }      })    } else {      console.log('获取用户登录态失败!' + res.errMsg)    }  }});

如果已经将用户openId存在数据库, 则可以直接调用

\wxpay\JsapiPay::getParams($params, $openId)

然后, 进行第3步即可