微信小程序支付

微信小程序支付接口需要的参数timeStamp、nonceStr、package、signType、paySign

openid是在登录时获取的 只需要调取token里的内容就可以了

点击事件通过cardid来判断与传值

<view class="weui-flex__item">
    <view class="placeholder buy" data-cardid="{{items.cardid}}" bindtap="payclick">购买</view>
</view>
//点击购买按钮
payclick: function(options) {
  var cardid = options.currentTarget.dataset.cardid;
  payData.generateOrder(cardid); // 调用支付js
}

引用js公共文件

/* 微信支付 */
module.exports = {
  generateOrder: generateOrder
}

const app = getApp();
var urlData = require("../url/url.js");

//生成商户订单
function generateOrder(cardid) {
  var buyquestioncardUrl = urlData.getHostUrl() + urlData.getBuyquestioncardUrl(); // 地址
  var that = this
  wx.request({
    url: buyquestioncardUrl, //后台请求地址
    method: 'POST',
    data: {
      cardid: cardid
    },
    header: {
      'content-type': 'application/json',
      "x-access-token": app.globalData.token  // 在token里面获取openid
    },
    success: function(res) {
      var datas = res.data.data.data; // 获取返回的数据timeStamp、nonceStr、package、signType、paySign
      wx.requestPayment({
        timeStamp: datas.timeStamp,
        nonceStr: datas.nonceStr,
        package: datas.package,
        signType: datas.signType,
        paySign: datas.paySign,
        success(res) {
          console.log("success");
        },
        fail(res) {
          console.log("fail");
        },
        complete(res) {
          console.log("complete");
        }
      })
    },
    fail: function(res) {
      console.log("向后台发送数据失败")
    }
  })
}

另外附上资料参考微信小程序支付流程 获取code 、openid、timeStamp、nonceStr、package、signType、paySign、支付

//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: "",
      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: '',//后台请求地址
      method: 'POST',
      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)
      }
    })
  }
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值