1、点击按钮,实现微信扫一扫功能:

<template><a class="btn" @click="scan">扫一扫</a>
</template>

2、使用config接口注入配置信息,wx.config调用方法如下:

(其中appId,timestamp,nonceStr,signature必须从后台获取,传参当前网页的URL,不包含#及其后面部分,location.href.split('#')[0]获取)

wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: '', // 必填,公众号的唯一标识timestamp: , // 必填,生成签名的时间戳,精确到秒nonceStr: '', // 必填,生成签名的随机串signature: '',// 必填,签名jsApiList: [] // 必填,需要使用的JS接口列表,例如:['chooseImage','previewImage','uploadImage']
})

3、通过ready接口处理成功验证

wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});

4、完整代码如下: 

export default {data() {return {}},methods: {init(){let url = location.href.split('#')[0];//这里的参数fullUrl是当前页面的完整url(除去#后面部分)this.$axios.get("/api/wx/jsdk/config",{params:{url:url}}).then(res => {if(res.success){window.wx.config({debug: false,appId: res.data.appId, // 必填,公众号的唯一标识timestamp: res.data.timeSpan, // 必填,生成签名的时间戳nonceStr: res.data.nonceStr, // 必填,生成签名的随机串signature: res.data.sinature, // 必填,签名jsApiList: ['checkJsApi', 'scanQRCode'] // 必填,需要使用的JS接口列表})}else{alert(res.msg);}})},scan(){window.wx.ready(function() {wx.checkJsApi({jsApiList : ['scanQRCode'],success : function(res) {if (res.checkResult.scanQRCode === true) {wx.scanQRCode({ // 微信扫一扫接口needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有success: function (res) {let result = res.resultStr // 当needResult 为 1 时,扫码返回的结果window.location.href = result;//此处扫码结果直接跳转链接}})} else {alert('抱歉,当前客户端版本不支持扫一扫')}},fail: function (res) { // 检测getNetworkType该功能失败时处理alert('fail' + res)}});});window.wx.error(function(res) {alert("出错了:" + res.errMsg);//这个地方的好处就是wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。});}},mounted() {this.init();}}

vue.js中使用微信扫一扫,解决invalid signature问题相关推荐

  1. vue项目中实现H5调取摄像头扫码扫一扫功能+生成可识别的条形码。单纯的h5网页不涉及真机

    vue项目中实现H5调取摄像头扫码扫一扫功能+生成可识别的条形码. 单纯的h5网页不涉及真机 demo链接 前端同学可以加我一起交流一起进步 案例描述:需求是生成条形码并且在vue项目中实现扫一扫功能 ...

  2. 在js中调用微信的扫描二维码功能

    在js中调用微信的扫描二维码功能* 关键代码 <html> <head>`在这里插入代码片`<title>js调用微信扫一扫功能测试</title>&l ...

  3. uni-app(Vue.js)创建运行微信小程序

    uni-app(Vue.js)创建运行微信小程序 1.全局安装 npm install -g @vue/cli 需要安装node,官方网站,否则提示npm不可用 2.创建uni-app 新建文件夹,选 ...

  4. echarts怎么用在php,在Vue.JS中怎样使用echarts

    这次给大家带来在Vue.JS中怎样使用echarts,在Vue.JS中使用echarts的注意事项有哪些,下面就是实战案例,一起来看一下. 上篇文章给大家介绍了 在 webpack 中使用 EChar ...

  5. Vue.js中的MVVM

    MVVM的理解 MVVM拆开来即为Model-View-ViewModel,有View,ViewModel,Model三部分组成.View层代表的是视图.模版,负责将数据模型转化为UI展现出来.Mod ...

  6. vue.js中mock本地json数据

    vue.js中mock本地json数据 新版本的vue项目中已经将dev-server.js,dev-client.js两个js文件合并到了webpack.dev.conf.js文件中,以下分别是新旧 ...

  7. VUE.js 中取得后台原生HTML字符串 原样显示问题

    今天使用vue调试页面,发现了页面上的一个问题,后台数据传过来的HTML字符串并没有被转换为正常的HTML代码,一拍脑门,发现忘记转换了,于是满心欢喜加上了{{{}}}.但是之后构建发现报错: 为此去 ...

  8. php动态写入vue,Vue.js中使用动态组件的方法

    本文介绍了如何在Vue.js中引用组件中的HTML元素.您可以通过使用Vue路由器或创建动态组件来切换视图或组件模板. Vue路由器用于在DOM中的视图或组件模板之间导航.要使用Vue路由器,请在ro ...

  9. 浅析Vue.js 中的条件渲染指令

    1 应用于单个元素 Vue.js 中的条件渲染指令可以根据表达式的值,来决定在 DOM 中是渲染还是销毁元素或组件. html: <div id="app"> < ...

最新文章

  1. codeforces数学1700[CodeForces 1336B[分类讨论+二分]CodeForces - 1301C[组合计数的减法原理]]
  2. tf.keras.layers.Dense() 示例
  3. [测试]单元测试框架NUnit
  4. PAT甲级1053 Path of Equal Weight (30分) :[C++题解]dfs求树的路径长度、邻接表
  5. html5的api有什么区别,HTML入门--浅谈HTML和HTML5有什么区别?
  6. CentOS6配置部署Zabbix监控
  7. 前端学习(3179):ant-design介绍2
  8. hadoop2.2单节点集群的搭建
  9. Builder生成器模式
  10. nginx 内置变量大全(转)
  11. mysql 导入设置编码_MySQL导入或导出数据库字符编码集设置
  12. SQL Server数据库技术大全——14讲 执行计划
  13. tukey 窗口_语音信号滤波去噪——使用TUKEYWIN窗设计的FIR滤波器.
  14. ios 身份证照片识别信息
  15. python用Selenium爬取携程网机票信息
  16. OSChina 周二乱弹 ——女孩在身上纹了个四叶草
  17. 朵拉影像开发 冬天真的来了
  18. 阿里云服务器开发实践:使用云服务器ECS搭建DoH服务
  19. 20175208 《Java程序设计》第十一周学习总结
  20. jquery 将下拉框重置_select下拉框之默认选项清空

热门文章

  1. 为什么事务日志自动增长会降低你的性能
  2. JAVA WEB 对返回数据进行按中文名称首字母A~Z升序排序
  3. ping来自192.168.1.1的回复:无法访问目标主机(丢包等网络问题)
  4. 会议上,如何分配任务
  5. iOS10 Safari不识别viewport禁用缩放的暴力解决方案
  6. SSM配置后可以访问静态html文件但无法访问其他后台接口的解决方案
  7. react+spring 记录跨域问题的解决方法
  8. 线程的异常捕获与线程池的异常捕获
  9. 项目遇到的问题总结(四):单页面首屏加载慢解决方案
  10. malloc和calloc之间的区别?