微信小程序 支付功能(前端)的实现

发布时间 - 2026-01-11 01:16:17    点击率:

微信小程序 支付功能(前端)的实现

只提供微信小程序端代码:


var app = getApp();
Page({
  data: {},
  onLoad: function (options) {
    // 页面初始化 options为页面跳转所带来的参数
    var that = this
    //登陆获取code
    wx.login({
      success: function (res) {
        console.log(res.code)
        //获取openid
        that.getOpenId(res.code)
      }
    });
  },
  getOpenId: function (code) {
    var that = this;
    wx.request({
      url: "https://api.weixin.qq.com/sns/jscode2session?appid=小程序appid&secret=小程序应用密钥&js_code=" + code + "&grant_type=authorization_code",
      data: {},
      method: 'GET',
      success: function (res) {
        that.generateOrder(res.data.openid)
      },
      fail: function () {
        // fail
      },
      complete: function () {
        // complete
      }
    })
  },
  /**生成商户订单 */
  generateOrder: function (openid) {
    var that = this
    //统一支付
    wx.request({
      url: '后台路径',
      method: 'GET',
      data: {
        gfee: '商品价钱',
        gname: '商品名称',
        openId:openid
        (商品价钱和商品名称根据自身需要是否传值,openid为必传)
      },
      success: function (res) {
        var pay = res.data
        //发起支付
        var timeStamp = pay[0].timeStamp;
        var packages = pay[0].package;
        var paySign = pay[0].paySign;
        var nonceStr = pay[0].nonceStr;
        var param = { "timeStamp": timeStamp, "package": packages, "paySign": paySign, "signType": "MD5", "nonceStr": nonceStr };
        that.pay(param)
      },
    })
  },

  /* 支付  */
  pay: function (param) {
    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) {
        // success
        wx.navigateBack({
          delta: 1, // 回退前 delta(默认为1) 页面
          success: function (res) {
            wx.showToast({
              title: '支付成功',
              icon: 'success',
              duration: 2000
            })
          },
          fail: function () {
            // fail

          },
          complete: function () {
            // complete
          }
        })
      },
      fail: function (res) {
        // fail
      },
      complete: function () {
        // complete
      }
    })
  }
})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # 支付  # 小程序  # 支付功能  # 微信小程序支付前端源码  # 微信小程序支付功能完整流程记录(前端)  # 希望能  # 跳转  # 谢谢大家  # 只提供  # 商户  # 默认为  # res  # console  # log  # wx  # login  # success  # openid  # weixin  # api  # sns  # qq  # request  # getOpenId  # https 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  java ZXing生成二维码及条码实例分享  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  利用vue写todolist单页应用  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  利用JavaScript实现拖拽改变元素大小  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Python制作简易注册登录系统  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何快速完成中国万网建站详细流程?  如何挑选优质建站一级代理提升网站排名?  Laravel怎么为数据库表字段添加索引以优化查询  IOS倒计时设置UIButton标题title的抖动问题  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  详解Oracle修改字段类型方法总结  Laravel如何创建自定义中间件?(Middleware代码示例)  如何在云主机上快速搭建多站点网站?  原生JS获取元素集合的子元素宽度实例  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  JavaScript如何实现路由_前端路由原理是什么  如何注册花生壳免费域名并搭建个人网站?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Python文件流缓冲机制_IO性能解析【教程】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  实例解析Array和String方法  Laravel如何与Pusher实现实时通信?(WebSocket示例)  javascript如何操作浏览器历史记录_怎样实现无刷新导航  如何快速使用云服务器搭建个人网站?  如何有效防御Web建站篡改攻击?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何快速选择适合个人网站的云服务器配置?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel Docker环境搭建教程_Laravel Sail使用指南  如何彻底删除建站之星生成的Banner?  如何快速搭建高效香港服务器网站?  详解jQuery停止动画——stop()方法的使用  JavaScript模板引擎Template.js使用详解  如何在云主机上快速搭建网站?  如何正确选择百度移动适配建站域名?  Laravel如何发送系统通知?(Notification渠道示例)