微信分享链接出现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不行 ...
随机推荐
- 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer
一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...
- 4 年前端狗,2 年 CTO
阅读本文大概需要 14 分钟. 本文系作者:『Scott』原创发布于慕课网. 我,Scott,一家创业公司的 CTO. 从业6年却很少写文章,近一年来接触了几十个刚毕业的前端新人,也面试了100多个前 ...
- Eclipse 中 Maven 项目 pom.xml 提示错误 org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
从SVN上下载到Eclipse工作空间的项目一直报如下错误,进行一下Maven ---> Update Project... 就不报错了,但是过一会又会报错 查找资料初步确定是Eclipse中自 ...
- python 按照一个字典的值来对这个字典进行排序
old_dic = {'a':6, 'b':3, 'c':2, 'd':4, 'e':5, 'f':1}new_dic = sorted(old_dic.items(), key=lambda d:d ...
- GDB dump mem example和命令
使用方法: You can use the commands dump, append, and restore to copy data between target memory and a fi ...
- 用Python爬取"王者农药"英雄皮肤
0.引言 作为一款现象级游戏,王者荣耀,想必大家都玩过或听过,游戏里中各式各样的英雄,每款皮肤都非常精美,用做电脑壁纸再合适不过了.本篇就来教大家如何使用Python来爬取这些精美的英雄皮肤. 1.环 ...
- CentOS7安装详解
本文基于vmware workstations进行CentOS7安装过程展示,关于vmware workstations安装配置本人这里不再介绍,基本过程相当于windows下安装个软件而已. 1.打 ...
- [P5162] WD与积木
每种堆法(理解成名次序列,举例3,3,8,2和7,7,100,2都对应2,2,1,3这个名次序列)等概率出现:题目中"两种堆法不同当且仅当某个积木在两种堆法中处于不同的层中"可见这 ...
- SQL笔记之SELECT语句
SELECT语句的完整语法: SELECT[ALL/DISTINCT]目标列表达式 [AS 别名],··· --ALL不去掉重复 DISTINCT去掉重复 FROM 表名或视图名 或者(SELECT ...
- Java核心技术及面试指南 集合部分总的面试题归纳以及答案
3.6.1ArrayList和LinkedList有什么差别?在哪种场景里应当用ArrayList(或LinkedList)? 大家如果学过数据结构,这个问题不难回答:前者是基于数组,数组比较擅长索引 ...