当前位置:网站首页>微信jsApi调用失效的相关问题
微信jsApi调用失效的相关问题
2022-08-04 17:16:00 【sunddy_x】
今天项目新增一个需要,要求添加微信扫一扫的功能,把官方文档看了一下,太简单了,直接拉起来开搞。按文档写的,【公众号绑定JS接口安全域名 ok】-【查看扫一扫接口权限 ok】-【项目引入jsapi ok】-【调用 wx.config()
ok】-【调用 wx.ready()
ok】-【调用扫一扫 wx.scanQRCode()
失败!】。
先说一下最终解决的问题,问题是 JS接口安全域名不允许携带端口号
,而后端将项目部署到另一个带端口的域名,结果导致了这次问题。
正文开始,按文档流程,该写的步骤都写了,点击按钮调用 wx.scanQRCode()
方法时没有任何响应,第一反应我先在各个关键位置打印输出,其他方法都能进入,只有 扫一扫
的回调方法没有调用,问题就在这儿了。一开始我不确定是不是本地环境导致扫一扫不生效,所以沟通后端同事先将项目发到测试环境上,结果还是一样的。
此时,我想起 wx.config()
中的一个参数 debug
,将它设为 true
可以获得更多详细信息。开启后,重新运行,扫一扫弹出信息 scanQRCode:fail, the permission value is offline verifying
。百度后大致说了以下几条解决建议:
- 公众号后台是否设置正确的
安全域名
- 确认
wx.config()
正确通过,查看jsApiList
是否添加了相应JSAPI - 页面加载好时就调用了JSAPI,则必须写在
wx.ready()
的回调中
第一条,安全域名的问题,我还特意登录公众号后台看了一下,但我只对比了安全域名与接口域名是否一致(前端项目地址也要和它们一致!!!),发现一致后就再也没考虑过它。
第二条,因为目标是使用微信公众号功能,所以直接在微信开发者工具上调试,打开debug模式后可以看到详细的问题:
首先可以看到jsApiList中确实传入了 scanQRCode
这个api,但是 config
结束时却丢失了,再下面获取到的JSSDK权限中明确显示没有获取到 scanQRCode
。一度以为公众号没有这个接口权限,一看发现确实有权限。之后在这里卡了很长一段时间,因为文档确实很简单,百度也没见这问题(有人在微信开放社区发了跟我一样的问题,都是不能获取jsapi权限,但是他解决问题是跟签名有关)。我甚至听从了后端的建议,把 config
的参数写死在页面上(当然是没用的)。
第三条,这个其实没太大影响,不过因为没有任何解决的方向,我就处理了一下。最初是点击按钮开始执行【调接口查签名等参数】-【调 wx.config
】-【调 wx.ready
】-【调 wx.scanQRCode()
】,然后改成了其他步骤在项目初始化时执行,扫一扫单独放到点击按钮时执行,当然也没有解决问题。
在最后,还是在主管的帮助下发现了问题所在。在这里记录一下,避免下次忘了再踩一遍坑。
边栏推荐
- shell脚本详解-------循环语句wuile循环和until循环
- 力拓信创生态,博睿数据多款产品获得东方通与达梦数据库产品兼容互认证明
- yarn详细入门教程
- 软件测试高频面试题真实分享/网上银行转账是怎么测的,设计一下测试用例。
- 机器学习(十):朴素贝叶斯
- Json的FastJson与Jackson
- LeetCode 1403.非递增顺序的最小子序列
- R语言使用yardstick包的gain_curve函数评估多分类(Multiclass)模型的性能、查看模型在多分类每个分类上的增益(gain)曲线(gain curve)
- 15 days to upgrade to fight monsters and become a virtual fashion creator
- el-date-picker 设置时间范围
猜你喜欢
How to convert an int attribute into a string in the json format returned by the Go language gin framework?
吃透Chisel语言.32.Chisel进阶之硬件生成器(一)——Chisel中的参数化
海报 | 夏季高温,危化品安全风险的注意事项必须get!
要有遥不可及的梦想,也要有脚踏实地的本事
【LeetCode每日一题】——374.猜数字大小
乐享购(分享购)的模式:优势、亮点、收益
学习探索-网站中引入百度统计
学习探索-给字体设置前景色
罗振宇折戟创业板/ B站回应HR称用户是Loser/ 腾讯罗技年内合推云游戏掌机...今日更多新鲜事在此...
Selenium Webdriver驱动自管理
随机推荐
xgboost模块param中的一些错误
安装失败怎么办
How to convert an int attribute into a string in the json format returned by the Go language gin framework?
dotnet remoting 抛出异常
C# Sqlite database construction and use skills
.NET云原生应用发展论坛--8月7日邀你一起云上探索
C. LIS or Reverse LIS?
设置表头颜色
Cesium快速上手0-Cesium安装与基本介绍
小满nestjs(第一章 介绍nestjs)
JVM内存和垃圾回收-08.方法区
图扑软件与华为云共同构建新型智慧工厂
R语言ggpubr包的ggtexttable函数可视化表格数据(直接绘制表格图或者在图像中添加表格数据)、使用ggarrange函数将表格数据和可视化图像组合起来(表格数据在可视化图像下方)
数字化金融企业的产品体系长啥样?
php如何查询字符串以什么开头
餐饮供应链管理系统
SAP ABAP SteammPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
谷歌开发者社区推荐:《Jetpack Compose 从入门到实战》新书上架,带你踏上 Compose 开发之旅~
Unity Apple登录接入
Catering Supply Chain Management System