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


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插件制作 图片走廊 gallery
Aug 17 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
JavaScript实现的搜索及高亮显示功能示例
Aug 14 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
Sep 19 Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 Javascript
Vue基础学习之项目整合及优化
Jun 02 Javascript
通过js实现压缩图片上传功能
Feb 25 Javascript
JS+Canvas实现五子棋游戏
Aug 26 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创建PDF中文文档
2006/10/09 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
js一组验证函数
2008/12/20 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
JavaScript中如何调用Java方法
2020/09/16 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
使用Python的turtle模块画国旗
2019/09/24 Python
python游戏开发的五个案例分享
2020/03/09 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
简历自我评价怎么写好呢?
2014/01/04 职场文书
餐饮加盟计划书
2014/01/10 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
培训科主任岗位职责
2014/08/08 职场文书
单位租车协议书
2015/01/29 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
工伤调解协议书
2016/03/21 职场文书