微信公众平台, config:invalid signature一直爆这个错误,求教如何解决?

sinat_26620109 2015-08-13 03:47:05
我的签名和微信接口验证生成的签名是一样的 为什么还是错误的
...全文
31011 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Virczz 2017-09-18
  • 打赏
  • 举报
回复
还有一种可能,就是服务器的IP地址是动态IP。本人经历过的坑,如果不确定,需要把服务器的IP地址或相关调用微信的Log打印出来,可以验证。
qwerhy 2017-06-02
  • 打赏
  • 举报
回复
@wei_2011 谢谢你的方法帮了大忙了
wei_2011 2017-03-08
  • 打赏
  • 举报
回复
你当前的页面地址和你参与签名的地址不一致: 第一步:点击微信右上角,复制链接,把链接地址粘帖到某个地方 第二步:在程序里打印出当前参与签名的网页地址 第三步:比较前两步的地址是否一致,99%可能不一致!
BugLovers 2017-02-17
  • 打赏
  • 举报
回复
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3 建议仔细阅读官网文档
  • 打赏
  • 举报
回复
我也是这个错误,原因是公众号设置的安全域名和当前网页的url不一致
stoneniqiu 2017-02-07
  • 打赏
  • 举报
回复
真是尴尬,一个网站是好的,另外一个网站死活不行。为什么微信不给个准确点的错误提示,真是蛋疼。
stoneniqiu 2017-02-07
  • 打赏
  • 举报
回复
楼主解决了吗? 我签名一直,url也一直 还报错
winner2050 2017-02-07
  • 打赏
  • 举报
回复
这时候你需要一台苹果手机。它会给你具体错误信息。
Sligcm 2017-02-07
  • 打赏
  • 举报
回复
引用 1 楼 wg5945 的回复:
你签名的url和你当前网页的url不一致~~
多谢,目前发现确实是这个问题。 其他问题也可以参考这里:http://www.thinkphp.cn/code/1568.html
qq_34248616 2016-08-15
  • 打赏
  • 举报
回复
看这个百度经验,应该可以解决你的问题 http://jingyan.baidu.com/article/b0b63dbf198ef74a483070f4.html
qq_34248616 2016-08-15
  • 打赏
  • 举报
回复
看这个百度经验,应该可以解决你的问题 http://jingyan.baidu.com/article/b0b63dbf198ef74a483070f4.html
範先森 2016-04-26
  • 打赏
  • 举报
回复
1、签名要用到的jsapi_ticket需要保存的,2小时有效期。如果在2小时内出现问题需要删除才能工作,一般是自身程序的问题,请检查。 2、nonceStr和noncestr的大小写,当心! 3、url一定要当心,如果是"http://x.com/jspay?oid=0&attr=1#wechat"的形式,那么应该保留的是"http://x.com/jspay?oid=0&attr=1"。 4、据此,url在JavaScript中是location.href.split('#')[0]获取。 5、据此,url在php中用$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]拼装, 6、据说会有多余的80端口问题,但是记录者没有遇到过,总之请小心。 7、url在JavaScript中千万别忘记“encodeURIComponent”!否则后果很诡异,遇到过初始化的时候报invalid signature,但是API接口又能调用的情况。
凭海临风sky 2016-04-26
  • 打赏
  • 举报
回复
还有一个时间戳timestamp
  • 打赏
  • 举报
回复
ignature 的值是用多个参数 sha1 加密的结果,详细流程即: 1, 通过 appid + appsecert 获取公众号的 access_token(不是用户的 access_token) 2, 根据 1 的access_token 来获取 jsapi_ticket 3, 生成一个随机字符串 nonceStr(16)位 4, 生成一当前时间缀 timestamp 5, 获取当前网页 URL(#号后不要) 获取到以上 5 步之后,将 jsapi_ticket,nonceStr, timestamp,URL 组成 Query String(GET 参数),即: $queryString = "jsapi_ticket=XXX&noncestr=XXX×tamp=XXX&url=XXX"; 生成 Query String 要注意: 1,Query String 的顺序不能变(按我给的示例) 2,Query String 中的 key 要全小写 3,Query String 中的 value 区分大小写 4,URL 要确保只获取 # 号之前部分(有 # 号的话) 5,Query String 要确保没有被 urlencode(如果使用 http_build_query 的话需要 urldecode 一次) signature 的值就是 sha1 加密后的结果,即: $signature = sha1($queryString); 详见微信官方文档 - JS-SDK使用权限签名算法: http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#....
wg5945 2015-08-13
  • 打赏
  • 举报
回复
你签名的url和你当前网页的url不一致~~

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧