javascript - 微信公众平台, config:invalid signature一直爆这个错误,求教如何解决?
PHPz
PHPz 2017-04-11 13:13:33
0
46
11350


然后哦 用这个校验和输出的是一致的也就是说 签名应该没问题吧 但是为什么手机上会显示无效呢 那个环节又出错了

PHPz
PHPz

学习是最好的投资!

全部回复(44)
伊谢尔伦

这两天也遇到这个问题,查了两天发现是一个特别二的失误:
我一直把开放平台的appid当作公众平台的在用,直到我膝盖中了一箭……

伊谢尔伦

当前url:http://www.xx.cn/h5/share.html 非常简单,生成签名的url一致.

微信校验签名也通过

代码部分如上,

可在微信里却还一直报invalid 签名!!
从上看到下,没找到这类问题的实际解决方案和原因!求指教啊!!

左手右手慢动作

我今天也碰到了这个问题,各种参数与签名均一致,但就是报签名错误。

最后你猜怎么着,最后居然发现是因为页面中有一个嵌套了腾讯视频的 iframe ,因为 js 对 iframe 大小进行调整时改变了 src 值导致 iframe 上一个请求被取消并再次加载,然后就导致微信 js 接口报 invalid signature 的错误了。

最后去掉了 iframe 自带的 src 属性,等 js 调整好大小后一次性加载,就解决了。

奇葩吧,一个 iframe 里嵌套的视频,看上去毫不相关的东西居然影响了微信的 js 接口的签名验证。

左手右手慢动作

timestamp也要检查一下

洪涛

我给说一下我微信分享二次签名遇到的问题,我后台获取参数时候出的问题,原来通过map遍历参数,然后在拼接一下,导致参数顺序不对,签名有误。
改正后的方式如下:

if(request.getQueryString()!=null) {
        uri+="?"+request.getQueryString(); 
    }

再次签名就正确了。主要原因还是签名的url和alert(location.href.split('#')[0])的url不一致。

Peter_Zhu

遇到这个问题 已经解决 方案来自本站网友 疯狂的蜗牛

问题:获取微信的jsapi_ticket有两个URL地址
一个是:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=wx_card
另一个是:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi
注意后面的type

我用成了第一个type=wx_card微信卡券的地址 改用用第二个地址type=jsapi。。问题解决

你可以检查下是不是这个问题

Peter_Zhu

大概就是当前URL和生成签名的URL不一致问题吧,说下我的问题。我用ajax请求的后台config参数,和LZ一样,签名没问题但是signature还是不可用,微信官方的文档里面的错误都筛过了,后来发现导致URL不一致的原因是GET和POST请求的问题,GET请求无法获取URL中&后的参数,导致URL不一致。So,很蠢的错误,但是可能也是比较容易被忽略的吧

洪涛

使用的是官网提供JS-SDk PHP Demo,出现invaild signature 打印地址时发现url为http://

解决办法:在类文件jssdk.php中修改$url

public function getSignPackage($host,$uri) {
$url = "http://".$host.$uri;
......
}
\\\\$jssdk->GetSignPackage($_SERVER['HTTP_HOST'],$uri = $_SERVER['REQUEST_URI']);
阿神

本地程序生成的 签名 跟 官网通过的签名工具生成的签名 对比是一致的,但还是提示 invalid signature , 请试试看把access_token.json跟jsapi_ticket.json内容都清空

巴扎黑

如果是第三方公众号开发者,在使用JS SDK时获取ticket(https://api.weixin.qq.com/cgi...)时的请求参数access_token要使用authorizer_access_token。
由于我之前使用的第三方公众号component_access_token导致出现了楼主类似的问题。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板