然后哦 用这个校验和输出的是一致的也就是说 签名应该没问题吧 但是为什么手机上会显示无效呢 那个环节又出错了
伊谢尔伦2017-04-11 13:15:33
当前url:http://www.xx.cn/h5/share.html 非常简单,生成签名的url一致.
微信校验签名也通过
代码部分如上,
可在微信里却还一直报invalid 签名!!
从上看到下,没找到这类问题的实际解决方案和原因!求指教啊!!
ringa_lee2017-04-11 13:15:33
我今天也碰到了这个问题,各种参数与签名均一致,但就是报签名错误。
最后你猜怎么着,最后居然发现是因为页面中有一个嵌套了腾讯视频的 iframe ,因为 js 对 iframe 大小进行调整时改变了 src 值导致 iframe 上一个请求被取消并再次加载,然后就导致微信 js 接口报 invalid signature 的错误了。
最后去掉了 iframe 自带的 src 属性,等 js 调整好大小后一次性加载,就解决了。
奇葩吧,一个 iframe 里嵌套的视频,看上去毫不相关的东西居然影响了微信的 js 接口的签名验证。
PHP中文网2017-04-11 13:15:33
我给说一下我微信分享二次签名遇到的问题,我后台获取参数时候出的问题,原来通过map遍历参数,然后在拼接一下,导致参数顺序不对,签名有误。
改正后的方式如下:
if(request.getQueryString()!=null) {
uri+="?"+request.getQueryString();
}
再次签名就正确了。主要原因还是签名的url和alert(location.href.split('#')[0])的url不一致。
天蓬老师2017-04-11 13:15:33
遇到这个问题 已经解决 方案来自本站网友 疯狂的蜗牛
问题:获取微信的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。。问题解决
你可以检查下是不是这个问题
天蓬老师2017-04-11 13:15:33
大概就是当前URL和生成签名的URL不一致问题吧,说下我的问题。我用ajax请求的后台config参数,和LZ一样,签名没问题但是signature还是不可用,微信官方的文档里面的错误都筛过了,后来发现导致URL不一致的原因是GET和POST请求的问题,GET请求无法获取URL中&后的参数,导致URL不一致。So,很蠢的错误,但是可能也是比较容易被忽略的吧
PHP中文网2017-04-11 13:15:33
使用的是官网提供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']);
阿神2017-04-11 13:15:33
本地程序生成的 签名 跟 官网通过的签名工具生成的签名 对比是一致的,但还是提示 invalid signature , 请试试看把access_token.json跟jsapi_ticket.json内容都清空
巴扎黑2017-04-11 13:15:33
如果是第三方公众号开发者,在使用JS SDK时获取ticket(https://api.weixin.qq.com/cgi...)时的请求参数access_token要使用authorizer_access_token。
由于我之前使用的第三方公众号component_access_token导致出现了楼主类似的问题。