现在位置:首页 » php/mysql »

微信公众号开发 config:invalid signature

作者: ⁄ 时间:2016年11月02日 ⁄ 分类: php/mysql 评论:0

测试微信公众号的时候

一直遇到报错  config:invalid signature

但是签名校验是对的

百思不得其解


最终在segmentfault找到答案

成功解决

本次原因是url的坑


常见解决方案

  • 签名要用到的jsapi_ticket需要保存的,2小时有效期。如果在2小时内出现问题需要删除才能工作,一般是自身程序的问题,请检查。
  • nonceStr和noncestr的大小写,当心!
  • url一定要当心,如果是"http://x.com/jspay?oid=0&attr=1#wechat"的形式,那么应该保留的是"http://x.com/jspay?oid=0&attr=1"。
  • 据此,url在JavaScript中是location.href.split('#')[0]获取。
  • 据此,url在php中用 $_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]拼装,
  • 据说会有多余的80端口问题,但是记录者没有遇到过,总之请小心。
  • url在JavaScript中千万别忘记“encodeURIComponent”!否则后果很诡异,遇到过初始化的时候报invalid signature,但是API接口又能调用的情况。

附:

https://segmentfault.com/q/1010000002520634


http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign


http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html


目前有 0 条评论