调用微信公众平台扫一扫示例及解决接口报错 { "errMsg": "config:invalid signature" }
2024-08-27 11:16:33
一、解决报错问题
单从报错信息 invalid signature 就可以看出是 签名signature 有问题,
查了很多资料,终于知道了问题点,
后台让我直接调接口是不对的,签名是根据请求接口的页面url来生成的,所以url要动态地传给后台,而且这个页面url还要除去'#'hash部分,可用 location.href.split('#')[0] 获取,需不需要 encodeURIComponent 进行编码询问后台,有的需要有的不需要。
eg:
var pageUrl ={
url:(window.location.href).split('#')[0]
};
$.ajax({
url:"/get-sign"+"?action=get_sign_package",
type:"post",
data:pageUrl,
success:function(data){
var params = JSON.parse(data);
/*配置 wx.config 参数*/
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: params.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
timestamp: params.timestamp, // 必填,生成签名的时间戳
nonceStr: params.nonceStr, // 必填,生成签名的随机串
signature: params.signature,// 必填,签名,见附录1
jsApiList: [
'checkJsApi',
'scanQRCode'
] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
}
});
经过上述修改,就能成功取到需要的参数。
二、调用微信扫一扫
经过上面成功配置微信参数,你就可以在你想使用微信接口的地方直接使用了,以扫一扫为例:
wx.ready(function(){
wx.checkJsApi({ //判断当前客户端版本是否支持指定JS接口
jsApiList: [
'scanQRCode'
],
success: function (res) {// 以键值对的形式返回,可用true,不可用false。如:{"checkResult":{"scanQRCode":true},"errMsg":"checkJsApi:ok"}
if(res.checkResult.scanQRCode != true){
alert('抱歉,当前客户端版本不支持扫一扫');
}
},
fail: function (res) { //检测getNetworkType该功能失败时处理
alert('checkJsApi error');
}
}); }); /*处理失败验证*/
wx.error(function (res) {
alert("share error: " + res.errMsg);
});
如果是事件触发调用接口的话,就把对应调用写在事件里面:
$(document).on('click','#scanQRCode',function(){
wx.scanQRCode({
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
scanSuc(res); // 扫描成功的回调函数
},
error: function(res){
if(res.errMsg.indexOf('function_not_exist') > 0){
alert('版本过低请升级')
}
}
});
});
最新文章
- Linux驱动学习 —— 在/sys下面创建目录示例
- nfs挂载配置
- JavaScript之命名空间模式 浅析
- Spring 000 框架简介 (转载)
- BZOJ2329 [HNOI2011]括号修复
- java中线程存活和线程执行的问题!
- Mac下载安装Android Studio教程
- gulp学习笔记1
- Hadoop卸载或增加节点
- Http服务器性能测试工具ab..
- 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)
- Robotium源码分析之Instrumentation进阶
- Java丨博客系统
- 实验排队功能实现(JAVA)
- [MSSQL]SQL Server里面导出SQL脚本(表数据的insert语句)(转)
- 如何搭建SVN的客户端和使用
- ALV屏幕捕捉回车及下拉框事件&;ALV弹出框回车及下拉框事件
- TableViewCell去除选中效果
- 每日英语:Foreign Tourists Skip Beijing
- Elegant Construction---hdu5813(构造图)
热门文章
- dubbo和mq的使用场景
- Feign报错'xx.FeignClientSpecification', defined in null, could not be registered.
- python selenium测试用例断言
- django(模版)
- framebufferfetch in mali multiple render targets mrt
- 怎么才能零基础彻底学会Java
- 2019HDU多校第九场 Rikka with Quicksort —— 数学推导&;&;分段打表
- 物联网之窄带物联网(NB-IOT)
- document基本操作 动态脚本-动态样式-创建表格
- 树状数组例题-数星星,简单题easy,校门外的树2,清点人数