最近在开发过程中用到微信的分享接口,但是按照他的文档来生成签名时,却一直出现invalid signature 的情况。

按照他提供的检测工具,检测出来的结果是正确的。

我这里获取签名的方法是在静态页面里通过异步传递当前url给php来获取,方法如下:

php获取方法使用的就是官方提供的例子修改的,签名算法应该没有问题。

url获取方法是参考http://segmentfault.com/q/1010000002502269,这个来实现的。

请问有人知道这是什么问题吗?

PS:刚刚测试发现,在手机上直接访问页面www.8-yi.com/passby/,然后是可以正常分享的,也就是签名正确了,但是分享以后(分享设置的link是:www.8-yi.com/passby/),再点开就会出现签名无效的情况,alert发现url后面被追加了一些微信的参数,但是即使这样,url也不算是错误的吧?为什么算出来的签名就是无效的呢?

因为我的url本身不需要参数,所以我把url获取方法改成:

var targetUrl = location.href.split('?')[0];//这里以 ? 作为分割,获取url

这样这里获取的url就跟直接访问时是一样的了,但是签名依然无效!!

都要疯了~~~

谢谢各位了~~~

回复内容:

最近在开发过程中用到微信的分享接口,但是按照他的文档来生成签名时,却一直出现invalid signature 的情况。

按照他提供的检测工具,检测出来的结果是正确的。

我这里获取签名的方法是在静态页面里通过异步传递当前url给php来获取,方法如下:

php获取方法使用的就是官方提供的例子修改的,签名算法应该没有问题。

url获取方法是参考http://segmentfault.com/q/1010000002502269,这个来实现的。

请问有人知道这是什么问题吗?

PS:刚刚测试发现,在手机上直接访问页面www.8-yi.com/passby/,然后是可以正常分享的,也就是签名正确了,但是分享以后(分享设置的link是:www.8-yi.com/passby/),再点开就会出现签名无效的情况,alert发现url后面被追加了一些微信的参数,但是即使这样,url也不算是错误的吧?为什么算出来的签名就是无效的呢?

因为我的url本身不需要参数,所以我把url获取方法改成:

var targetUrl = location.href.split('?')[0];//这里以 ? 作为分割,获取url

这样这里获取的url就跟直接访问时是一样的了,但是签名依然无效!!

都要疯了~~~

谢谢各位了~~~

哈哈,自己找到了问题所在,这里跟大家分享一下吧。

我的问题主要是二次分享时签名就会无效,原因就是二次分享的连接被微信加上了参数,有两个(或者更多),这样二次分享的url就变成了www.8-yi.com/passby/index.html?from=singlemessage&isappinstalled=0

注意这里的&符号,由于我使用的是get方法,这样服务端接收到的url就会丢失&后面的字符,所以导致url不正确,进而导致签名无效。

解决方法也很简单,就是在传递参数之前把这个字符转成编码,像这样:

var targetUrl = location.href.split('#')[0];

targetUrl = targetUrl.replace('&', '%26');

就可以了

收藏学习了。。。。。。。。。。。。

如果进入就报invalid signature错误怎么解决,用的是官方的jssdk和sample文件,微信的测试号appid和appSecret

地址不能是www.sxsxsx/aad/

一定要吧地址写完整,index.php, 不然就会出现问题,而且是很难发现的这个致命错误

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

invalid signature_php,javascript - 微信接口调用一直是 invalid signature相关推荐

  1. 微信接口开发报错invalid credential, access_token is invalid or not latest hint

    微信接口凭证access_token一定要全局管理 我们的查酒后台集成了微信公众平台的客服API接口,不用登录微信公众号的后台就可以直接给用户发送消息.最近,运营的同事反馈,通过微信查酒,后台无法直接 ...

  2. 微信接口调用返回码一览表

    微信返回码一览表: 返回码 错误码描述 说明 40001 invalid credential 不合法的调用凭证 40002 invalid grant_type 不合法的grant_type 400 ...

  3. html怎么调用微信api接口,JFinal Weixin 学习笔记(6)-- 获取微信接口调用凭据

    利用 AccessTokenApi 获取 access_token access_token 是公众号的全局唯一票据,公众号调用各接口时都需使用 access_token. jfinal-wein 提 ...

  4. 微信接口调用权限报: 48001, api unauthorized hint

    问题场景,调用微信创建卡包接口出现:api unauthorized hin,一看就是权限的问题,查看微信公众号是已经认证的但是还是接口权限没有,然后突然想起来没微信接口也有个权限所以........ ...

  5. 微信接口调用频次限制说明

    接口调用频次限制说明 公众号调用接口并不是无限制的.为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回 ...

  6. 微信接口调用 ---ACCESS_TOKEN

    开始尝试一点点微信企业号的开发,目前的要求的开发的第三方软件可以直接通过微信扫码直接登录. 尝试第一步吧,理解一下,微信的开发文档中url怎么用. 刚开始接触是尝试主动调用,获得Access_Toke ...

  7. C# 关于调用微信接口的代码

    之前公司下达了开发微信只一块的任务,然后我就去网上取了一番经,可是感觉对于我这种微信开发的新手来说,所需要的东西太多,太凌乱了,然后整个人就懵逼了. 费了很长时间才将微信接口调用完成.所以呐,我整理了 ...

  8. 11 公众号开发 - 获取接口调用凭据

    access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留512个字符空间.access_to ...

  9. java获取微信的通讯录,java微信开发API第三步 微信获取以及保存接口调用凭证

    微信如何获取以及保存接口调用凭证,下面就为大家进行介绍 一.说明 *详细说明请参考前两篇文章. *本文分为三部分: 接口调用凭证access_token的作用以及解释 如何获取接口调用凭证access ...

最新文章

  1. 关键任务应用程序依赖于故障保护存储器
  2. Angular 富文本编辑之路的探索
  3. AAAI 2020放榜,8800篇提交论文创纪录,接收率20.6%
  4. 不同版本Eclipse对JDK版本要求
  5. Oracle优化01-引起数据库性能问题的因素
  6. java 异常抛出 顺序_java异常抛出时间顺序
  7. zabbix4.2学习笔记系列
  8. pycharm cpu占用低_AMD的CPU游玩2077提升帧数的办法
  9. [Ext JS 7 ]7.5 自适应配置 - Responsive Configs
  10. JSP三大指令、七大动作、九大对象
  11. java楼盘管理系统_javaweb房产信息管理系统
  12. 术语-PM:PM/项目管理 百科
  13. 四非到保研厦大,我们还有多少路要走----技术人的保研之路
  14. 关于批量下载MODIS数据的坑
  15. python初级学习
  16. 首份财报营收增长扭亏为盈,为何怪兽充电的出路依旧“迷雾重重”
  17. cdn刷新api_缓存刷新与查询
  18. error C4189
  19. 微型计算机中的数据总线用来进行什么的传输,汽检2011级汽车车载网络复习题答案...
  20. hive修复多级分区

热门文章

  1. tmux 上滚_实践中的tmux:回滚缓冲区
  2. 管理R包——Pacman包介绍
  3. 深入理解html5:语义,标准与样式pdf,深入理解html5语义标准与样式.doc
  4. python3.6串口编程实例_使用python3实现操作串口详解
  5. Python getattr() 函数
  6. Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换
  7. 【完整版-斯坦福-密码学】全13讲(绪论)【笔记】
  8. excel公式:用countif、match、index合并同类项
  9. Matlab--二次多项式曲面拟合
  10. Servlet文件下载模板