微信分享链接出现config:invalid signature错误的解决方法
首先贡献jssdk下载地址:http://demo.open.weixin.qq.com/jssdk/sample.zip 不建议大家在*SDN上花钱买积分下载
当开发微信时需要做特定的页面做分享时,根据官方提供的jssdk.php文件创建的签名数据包调试时,大家碰到的最多的错误而且解决最麻烦的大概就是signature错误了,如下图:

分享时提示错误“{"errMsg":"config:invalid signature"}”
一般出现这个错误多半是签名获取失败,而造成签名获取失败的原因各种各种,子钦在开发的时候也遇到过这种情况,搜索了不少网上教程,解决了自己的问题。接下来,子钦将这些解决方法统一整理列出来,希望可以帮到大家:
1、APPID和APPSECRET填错
这个错误可以到官方的调试页面获取access_token看看是否是正确,点击获取获取access_token
根据返回的结果可以判断页面内的APPID和APPSECRET有没有出错,没有出错的话可以点击获取jsapi_ticket
利用前面拿到的access_token 采用http GET方式请求获得jsapi_ticket,如果出错的话会返回对应的说明。
2、超过了每日的access_token获取上限
官方限定每日2000次请求,所以如果没有缓存access_token的话,还是比较容易过限的。
3、查看微信公共号状态是否不正常
比如验证过期了,被封禁了等。
4、确认config中nonceStr
js中驼峰标准大写S, timestamp与用以签名中的对应noncestr, timestamp一致。
5、确认url是页面完整的url
请在当前页面alert(location.href.split('#')[0])确认,包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分,这里在文章《静态页面实现微信分享带缩略图、标题和描述》最后已做说明,大家可以自行修改好。
6、配置curl是否使用ssl的带证书(https协议)访问开关
找到官方提供的jssdk.php,找到代码:
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
将true改为false,因为一般我们是没有安装证书的(https协议),所以将true改为false就好,反之,如果网站安装了证书,则将false改为true。
7、将网站所在服务器IP地址加入白名单

8、反向代理问题
如果以上查验绝没有解决问题,则查看下自己的服务器是否反向代理没有设置好,nginx配置反向代理代码:
proxy_set_header Host $http_host;
或者如下示例
server {
listen ;
server_name test.test.com;
location / {
root html;
index index.html index.htm;
proxy_read_timeout ;
proxy_connect_timeout ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
9、access_token使用上限用完了(自己项目中出现了这种情况时间是2018.09.18)
先上图





上下图对比,你会发现接口请求次数达到了2000次,而且还在不断请求,估计我们的是有人在恶意请求接口或者恶意分享文章,接下来要对access_token/token做缓存处理:请求一次 有效时间是 2小时,把签名信息 存入表中 或者缓存中
具体思路:
每请求一次,把 当前时间戳 和 延后2小时 的时间戳 和签名一起存入表或者缓存。
当下次需要签名时,直接去读取表、或缓存的数据,先判断当前时间是否在 有效期内
如果在有效期内,则不用重新请求签名了,直接调用缓存或者查询表就可以了
后记:微信公众号官方并没有就签名错误给出详细的排解方法,大家在开发的过程中难免出现各种问题导致签名错误,如果以上方法仍未解决您的问题,可以在下面留言,大家一起交流解决!
微信分享链接出现config:invalid signature错误的解决方法的更多相关文章
- 微信jsSDK公众号开发时网页提示 invalid signature错误的解决方法
微信公众号开发jsSDK,链接地址不能加?参数,可以通过#传递参数. 不然.页面wx.ready()时就会报错,用 wx.error(function (res) { alert("接口验证 ...
- 微信jssdk 返回的 config invalid signature
这几天一直在调试wxjssdk,按照api的需求,http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html ,先是根据a ...
- 微信分享报错config:invalid url domain
错误类型:invalid url domain 调试返回参数: { "errMsg": "config:invalid url domain" } 截图: 环境 ...
- wordpress设置“固定链接”后,页面404错误的解决方法
Nginx 解决方案: 网上盛传的方法是: 在 /etc/nginx/nginx.conf文件的 loction / {} 中添加 if (-f $request_filename/index.htm ...
- Vue微信自定义分享时安卓系统config:ok,ios系统config:invalid signature签名错误,或者安卓和ios二次分享时均config:ok但是分享无效的解决办法
简述需求:要求指定页面可以进行微信自定义分享(自定义标题,描述,图片,链接),剩下的页面隐藏所有基础接口.二次分享依然可以正常使用,切换至其他页面也可以正常进行自定义分享. 这两天在做微信自定义分享的 ...
- php 微信jssdk 微信分享一直报config:fail,Error: invalid signature(签名生成是一致的)
php 微信jssdk 微信分享一直报config:fail,Error: invalid signature(签名生成是一致的) 里面url必须是当前的url比方说在A地址 请求获取jssdk参数 ...
- 微信jssdk常见错误及解决方法
调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息.以下为常见错误及解决方法: invalid url domain当前页面所在域名与使用 ...
- Invalid Binary错误怎么解决
Invalid Binary错误怎么解决? 本文永久地址为http://www.cnblogs.com/ChenYilong/p/3989829.html ,转载请注明出处. iOS8升级过程中, ...
- centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课
centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课 rsync可以增量同步,scp不行 ...
随机推荐
- Android 基本控件相关知识整理
Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户.作为一个程序员如何才能开发出友好的图形界 ...
- SpringMVC框架一:搭建测试
这里做一个Demo:展示商品列表 新建Dynamic Web Project: 导入jar包,放在lib下: 放入Lib文件夹之后,会自动build path 接下来配置web.xml: <?x ...
- MySQL数据库的锁机制
在并发访问情况下,很有可能出现不可重复读等等读现象.为了更好的应对高并发,封锁.时间戳.乐观并发控制(乐观锁).悲观并发控制(悲观锁)都是并发控制采用的主要技术方式. 锁分类 ①.按操作划分:DML锁 ...
- Python——爬虫进阶
课程内容 Python爬虫——反爬 Python加密与解密 Python模块——HashLib与base64 Python爬虫——selenium模块 Python——pytessercat识别 ...
- GloVe损失函数的理解
简介 GloVe是一种非常简单快速的训练词向量的算法.与复杂的word2vec相比,其是一个log双线性模型,仅通过一个简单的损失函数就能够得到很好的结果. (1)J=∑i,jNf(Xi,j) ...
- 《JavaScript总结》js的运行机制
首先大家都知道javascript是单线程语言. 什么是单线程呢?比如我们去车站买票,只有一个售票窗口,大家排队买票,需要前面的人买完票,后面的人才能买票. 那为什么javascript不能是多线程呢 ...
- ArcMap中属性字段计算器(Field Calculator)的使用技巧
很多时候,我们在使用ArcGIS进行属性数据编辑时,需要批量修改某些字段值,这时候ArcGIS提供的属性字段计算器(Field Calculator)就是一把利器.下面我就Field C ...
- PCA实现教程
数据是机器学习模型的生命燃料.对于特定的问题,总有很多机器学习技术可供选择,但如果没有很多好的数据,问题将不能很好的解决.数据通常是大部分机器学习应用程序中性能提升背后的驱动因素. 有时,数据可能很复 ...
- Java 并发编程-再谈 AbstractQueuedSynchronizer 2:共享模式与基于 Condition 的等待 / 通知机制实现
共享模式acquire实现流程 上文我们讲解了AbstractQueuedSynchronizer独占模式的acquire实现流程,本文趁热打铁继续看一下AbstractQueuedSynchroni ...
- MyBatis源码解析(二)——Environment环境
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6625612.html 本应该先开始说Configuration配置类的,但是这个类有点过于 ...