然后哦 用这个校验和输出的是一致的也就是说 签名应该没问题吧 但是为什么手机上会显示无效呢 那个环节又出错了
学习是最好的投资!
这两天也遇到这个问题,查了两天发现是一个特别二的失误:我一直把开放平台的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不一致。
遇到这个问题 已经解决 方案来自本站网友 疯狂的蜗牛
问题:获取微信的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。。问题解决
你可以检查下是不是这个问题
大概就是当前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导致出现了楼主类似的问题。
这两天也遇到这个问题,查了两天发现是一个特别二的失误:
我一直把开放平台的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遍历参数,然后在拼接一下,导致参数顺序不对,签名有误。
改正后的方式如下:
再次签名就正确了。主要原因还是签名的url和alert(location.href.split('#')[0])的url不一致。
遇到这个问题 已经解决 方案来自本站网友 疯狂的蜗牛
问题:获取微信的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。。问题解决
你可以检查下是不是这个问题
大概就是当前URL和生成签名的URL不一致问题吧,说下我的问题。我用ajax请求的后台config参数,和LZ一样,签名没问题但是signature还是不可用,微信官方的文档里面的错误都筛过了,后来发现导致URL不一致的原因是GET和POST请求的问题,GET请求无法获取URL中&后的参数,导致URL不一致。So,很蠢的错误,但是可能也是比较容易被忽略的吧
使用的是官网提供JS-SDk PHP Demo,出现invaild signature 打印地址时发现url为http://
解决办法:在类文件jssdk.php中修改$url
本地程序生成的 签名 跟 官网通过的签名工具生成的签名 对比是一致的,但还是提示 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导致出现了楼主类似的问题。