微信小程序前端支付

原文地址


//index.js
Page({
  data: {

  },
  //點擊支付按鈕進行支付
  payclick: function () {
    var t = this;
    wx.login({
      //獲取code換取openID
      success: function (res) {
        //code = res.code //返回code
        console.log("獲取code");
        console.log(res.code);
        var opid = t.getOpenId(res.code);
      }
    })
  },
  //獲取openID
  getOpenId: function (code) {
    var that = this;
    wx.request({
      url: "https://api.weixin.qq.com/sns/jscode2session?appid=你的appid&secret=AppSecret(小程序密鑰)&js_code=" + code + "&grant_type=authorization_code",
      data: {},
      method: 'GET',
      success: function (res) {
        console.log("獲取openid")
        console.log(res)
        that.setData({
          openid: res.data.openid,
          session_key: res.data.session_key
        })
        that.generateOrder(res.data.openid)
      },
      fail: function () {
        // fail
      },
      complete: function () {
        // complete
      }
    })
  },
  //生成商戶訂單
  generateOrder: function (openid) {
    var that = this
    wx.request({
      url: 'http://localhost:25492/wx/getda',//後臺請求地址
      method: 'GET',
      data: {
        gfee: '商品價錢',
        gname: '商品名稱',
        openId: openid
        //(商品價錢和商品名稱根據自身須要是否傳值, openid爲必傳)
      },
      success: function (res) {
        console.log("後臺獲取數據成功");
        console.log(res);
        var param = { "timeStamp": res.data.timeStamp, "package": res.data.package, "paySign": res.data.paySign, "signType": "MD5", "nonceStr": res.data.nonceStr };
         //發起支付
        that.pay(param);
      },
      fail: function (res) {
        console.log("向後臺發送數據失敗")
      }
    })
  },
  //支付
  pay: function (param) {
    var that = this;
    console.log("發起支付")
    console.log(param)
    wx.requestPayment({
      timeStamp: param.timeStamp,
      nonceStr: param.nonceStr,
      package: param.package,
      signType: param.signType,
      paySign: param.paySign,
      success: function (res) {
        console.log("success");
        console.log(res);
      },
      fail: function (res) {
        console.log("fail")
        console.log(res);
      },
      complete: function (res) {
        console.log("complete");
        console.log(res)
      }
    })
  }
})
相關文章
相關標籤/搜索