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


Posted in Javascript onMay 24, 2017

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

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

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
      }
    })
  }
})

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

Javascript 相关文章推荐
jQuery 1.2.x 升? 1.3.x 注意事项
May 06 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
Mar 08 Javascript
JavaScript中String和StringBuffer的速度之争
Apr 01 Javascript
js动画(animate)简单引擎代码示例
Dec 04 Javascript
使用JQuery在线制作ppt并在线演示源码特效
Sep 08 Javascript
JavaScript 冒泡排序和选择排序的实现代码
Sep 03 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
Aug 17 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 Javascript
tsconfig.json配置详解
May 17 Javascript
JavaScript实现弹出窗口效果
Dec 09 Javascript
微信小程序 选项卡的简单实例
May 24 #Javascript
JS回调函数基本定义与用法实例分析
May 24 #Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 #jQuery
详解前后端分离之VueJS前端
May 24 #Javascript
JQuery Ajax 异步操作之动态添加节点功能
May 24 #jQuery
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
May 24 #Javascript
使用jQuery.Pin垂直滚动时固定导航
May 24 #jQuery
You might like
需要发散思维学习PHP
2009/06/29 PHP
php 验证码制作(网树注释思想)
2009/07/20 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
python中的yield使用方法
2014/02/11 Python
Windows下PyMongo下载及安装教程
2015/04/27 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
python验证身份证信息实例代码
2019/05/06 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
Django中ORM的基本使用教程
2020/12/22 Python
python 写一个水果忍者游戏
2021/01/13 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
婚礼答谢词范文
2015/09/29 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
nginx配置ssl实现https的方法示例
2021/03/31 Servers
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
redis数据一致性的实现示例
2022/03/18 Redis
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记