小程序调用微信支付的方法


Posted in Javascript onSeptember 26, 2019

本文实例为大家分享了小程序调用微信支付的具体代码,供大家参考,具体内容如下

首先调用小程序wx.login登录接口  获取用户code

将code作为参数  传给后端  调用后端接口wechat/pay/prepay

获取后端  这五个返回值

nonceStr 
package2
paySign 
signType
timeStamp

wx.login({
   success: function (res) {
    var userId = wx.getStorageSync('userId');
    var passw = userId + orderId;
    console.log(passw)
    var password = util.sha1(passw);
    //console.log(res) //获取用户的code 微信返回的值 
    wx.request({
     url: url + 'wechat/pay/prepay',
     method: "POST",
     header: {
      'content-type': 'application/json',
     },
     data: {
      code: res.code, //微信返的code
      userId: userId, //登录注册时后端返给我的
      orderId: orderId, //用户提交时后端返给我的工单号
      sign: password, //后端要求的serId + orderId加密
     },
     success: function (res) {
      // if (res.data.resultCode == "000000"){
       nonceStr = res.data.data.nonceStr;
       package2 = res.data.data.package;
       paySign = res.data.data.paySign;
       signType = res.data.data.signType;
       timeStamp = res.data.data.timeStamp;
       that.pay2()
      // }
       console.log(res.data.data.nonceStr)
       console.log(res.data.data.package)
       console.log(res.data.data.paySign)
       console.log(res.data.data.signType)
       console.log(res.data.data.timeStamp)
     },
     fail(err) {
      console.log(err)
     }
    })
   },
   fail(errs) {
    console.log(errs)
   }
  })

成功返回后,用户点击支付,调用微信支付接口wx.requestPayment:

后端设置好金额,用户调用即可支付

pay2() {
  wx.requestPayment(
   {
    timeStamp: timeStamp, //时间戳
    nonceStr: nonceStr, //随机字符串
    package: package2, //统一下单接口返回的 prepay_id 参数值
    signType: signType, //签名类型
    paySign: paySign, //签名
    success(res) {
     console.log(res)
     wx.navigateTo({
       url: '../successful/successful'
      })
    },
    fail(res) {
     console.log(res)
    }
   })
 },

最后我们的项目在调用微信wx.requestPayment 支付接口时,在success成功函数里请求了我方后端接口,获取状态码,判断是否支付成功。因为用户支付给微信,成功之后,只有用户能够看到,我方后端是获取不到是否支付成功的,请求这个接口就是这个目的。在微信请求支付成功之后,请求后端获取返回值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
jQuery设置指定网页元素宽度和高度的方法
Mar 25 Javascript
jQuery文字提示与图片提示效果实现方法
Jul 04 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
node内置调试方法总结
Feb 22 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
Feb 23 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
浅谈Javascript常用正则表达式应用
Mar 08 Javascript
JS实现的贪吃蛇游戏案例详解
May 01 Javascript
vue 判断页面是首次进入还是再次刷新的实例
Nov 05 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 Javascript
react中useState使用:如何实现在当前表格直接更改数据
Aug 05 Javascript
细说webpack6 Babel的使用详解
Sep 26 #Javascript
微信小程序实现拖拽功能
Sep 26 #Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 #Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 #Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 #Javascript
vue+element tabs选项卡分页效果
Jun 29 #Javascript
layui实现根据table数据判断按钮显示情况的方法
Sep 26 #Javascript
You might like
谈谈PHP语法(5)
2006/10/09 PHP
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
详解handlebars+require基本使用方法
2016/12/21 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
node文件上传功能简易实现代码
2017/06/16 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
公司晚会主持词
2014/03/22 职场文书
公司任命书模板
2014/06/06 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书