小程序支付流程详解

世界上最简单的微信支付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步即可

你可能感兴趣的:(ThinkPHP5)