小程序微信支付

小伙伴们现在分享一哈小程序微信支付,有兴趣的可以了解一下,上干货!!!

// pages/confirm/confirm.js

const app = getApp();
import { conFirm } from 'confirm-model.js';
var confirm = new conFirm(); //实例化  对象

Page({

  /**
   * 页面的初始数据
   */
  data: {
    
  },

  /**
   *点击立即支付
   *
   */
   formSubmit:function(e){
      var that = this;
       //这里是去你后端生成订单编号
        
      var payInfo = {
          body: '提示信息',
          total_fee: '金额',
          order_sn: '后端接口返回给你的订单编号',
          openid: openid,//支付人openid
        }
        that.wxPay(payInfo);//参数验证,上面的四个参数缺一不可
    
   },
  

  /**
   * TODO 支付函数 【需要支付时调用此函数即可】
   * @param  {[type]} _payInfo [description]
   * @return {[type]}          [description]
   */
  wxPay: function (_payInfo) {
    var that = this;
    
    //提取订单信息
    var payInfo = {
      body: '',
      total_fee: '',
      order_sn: '',
      openid: ''
    }
    //将所有可枚举属性的值从一个或多个源对象复制到目标对象,然后返回目标对象
    Object.assign(payInfo, _payInfo);

    if (payInfo.body.length == 0) {
      var message = '支付信息描述错误';
      that.prompt(message);
      return false;
    }
    if (payInfo.total_fee == 0) {
      var message = '支付金额不能0';
      that.prompt(message);
      return false;
    }
    if (payInfo.order_sn.length == 0) {
      var message = '订单号不能为空';
      that.prompt(message);
      return false;
    }
    
    that.getPrepay_id(payInfo);
  },

  /**
   * 生成预支付订单prepay_id
   */
  getPrepay_id: function (payInfo) {//这里是去后端获取预支付订单id,prepay_id
    var that = this;
    var body = payInfo.body;
    var total_fee = payInfo.total_fee;
    var order_sn = payInfo.order_sn;
    var openid = payInfo.openid;
    confirm.getPrepay_id(body, total_fee, order_sn, openid, (res) => {
      that.payCallBack(res);//获取到支付需要的参数,去调起微信支付
    })
  },

  /**
   * 微信唤醒支付的回调操作
   */
  payCallBack: function (payResult) {
    var self = this;
    // console.log(payResult);
    wx.requestPayment({
      'timeStamp': payResult.timeStamp,
      'nonceStr': payResult.nonceStr,
      'package': payResult.package,
      'signType': payResult.signType,
      'paySign': payResult.paySign,
      'success': function (succ) {
        //此处做支付成功后的页面展示
        var message = '支付成功';
        self.prompt(message);
      },
      'fail': function (err) {
        //此处做支付失败后的页面展示
        var message = '支付失败';
        self.prompt(message);
      },
    })
  },

  /**
   * 提示框
   */
  prompt: function (message) {
    wx.showToast({
      title: message,
      icon: 'none',
      duration: 2000, //时间
      mask: true //蒙层
    })
  },

  

})

这里只是前端的微信调起支付,需要配合后端接口去获取prepay_id,如果有不懂的小伙伴,可以微object_1995联系我哦!!!

整理不易,转发请附原创地址,谢谢

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值