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

发布时间 - 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怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  java获取注册ip实例  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何快速生成橙子建站落地页链接?  原生JS实现图片轮播切换效果  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  如何获取上海专业网站定制建站电话?  Laravel怎么使用Intervention Image库处理图片上传和缩放  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何在搬瓦工VPS快速搭建网站?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  深入理解Android中的xmlns:tools属性  Swift开发中switch语句值绑定模式  JS碰撞运动实现方法详解  简单实现Android验证码  在线制作视频的网站有哪些,电脑如何制作视频短片?  Laravel如何使用Vite进行前端资源打包?(配置示例)  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  php json中文编码为null的解决办法  JavaScript如何实现路由_前端路由原理是什么  开心动漫网站制作软件下载,十分开心动画为何停播?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  手机网站制作与建设方案,手机网站如何建设?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel如何创建自定义中间件?(Middleware代码示例)  香港服务器网站推广:SEO优化与外贸独立站搭建策略  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  浅谈redis在项目中的应用  Android Socket接口实现即时通讯实例代码  公司网站制作价格怎么算,公司办个官网需要多少钱?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel如何实现多对多模型关联?(Eloquent教程)  javascript日期怎么处理_如何格式化输出  Laravel如何使用Eloquent进行子查询  动图在线制作网站有哪些,滑动动图图集怎么做?