微信Web开发之config:invalid signature

config:invalid signature可以按以下方法排查

    1. JS接口安全域名设置问题:应该只包含域名,比如https://i.cnblogs.com 的域名是i.cnblogs.com

    2. wx.config配置参数相关的要求
      1. 时间戳(timestamp)值精确到秒,不是毫秒
      2. nonceStr字段名称的‘s‘是大写。
      3. appid 与获取 jsapi_ticket 使用的appid 必须相同
      4. 进行签名(加密)的URL
        1. 对于加密的URL,包括https://或http://和?后面包括的参数,不能包括#之后的内容。
          比如:
          加密的URL是:http://abc.com/a.html?adasd=1#localion
          那么正确的加密URL应该是:http://abc.com/a.html?adasd=1
        2. 前端发送到后端进行sha1加密的url是当前js页面的URL,不是获取验证签名的接口URL
          比如: 
          当前页面URL是   http://abc.com/a.html 
          获取appId、timestamp、nonceStr、signature的URL接口是   http://abc.com/aaa/getSignature.html
          那么进行加密的URL应该是 http://abc.com/a.html
        3. 后端获取用来加密的URL要动态获取。
    3. 需要缓存access_token和jsapi_ticket,不然可能因为每次获取时刷新了不同的值,导致验证失败。
    4. 用户授权回调之后,页面路径会添加两个参数:code和state
      比如:

      授权后跳转页面为:http://abc.com
      则添加参数后会变成:

      http://abc.com?code=asdasd&state=STATE

      如果直接使用location.href.split(‘#‘)[0]获取当前页面的URL,会把state当成一个查询的参数导致错误
      正确的获取签名URL:encodeURIComponent(location.href.split(‘#‘)[0])

    5. 签名算法出现错误:
      使用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具校验
    6. 服务器ip没有在白名单上
      公众号后台->基本配置->设置IP白名单
    7. 超过了每日的access_token获取上限,token过期后签名失败
    8. 反向代理没有设置正确
      nginx配置反向代理代码:proxy_set_header Host $http_host;

原文地址:https://www.cnblogs.com/Rookie-Programmer/p/11287775.html

时间: 2024-07-29 17:17:22

微信Web开发之config:invalid signature的相关文章

微信网页分享 jssdk config:invalid signature 签名错误

invalid signature签名错误.建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 确认config中noncestr, timestamp与用以签名中的对应noncestr, timestamp一致. 确认url是页面完整的url,包括GET参数部分. 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致. 确

java微信分享config:invalid signature,自定义右上角菜单(只保留分享给好友和朋友圈)

微信提供的API位置:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN 先照着文档复制: JSSDK使用步骤 步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 备注:登录后可在"开发者中心"查看对应的接口权限. 说明:登录公共平台https

Web开发之RSET API

REST介绍 如果要说什么是REST的话,那最好先从Web(万维网)说起. 什么是Web呢?读者可以查看维基百科的词条(http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了.总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web.当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web. 那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术,URI(统一资源标识符,用来标

[Java Web] 3\WEB开发之HTML基础程序试手

1.初试: 1 <html> 2 <body> 3 <h1>My First Heading</h1> 4 <p>My first paragraph.</p> 5 </body> 6 </html> 2.标题: HTML 标题(Heading)是通过 <h1> - <h6> 等标签进行定义的.显然由大标题变为小标题.... 1 <html> 2 <body> 3

【Go web开发之revel+mgo】第11章 部署到heroku上

演示地址  http://gblog-revel.herokuapp.com/ 1.申请mongohq 关于如何在注册heroku和mongohq帐号,我在之前的blog里面有说明,http://blog.csdn.net/joveth/article/details/19999535 这里简单的说一下,还记得我们的models/dao.go文件里的NewDao方法中被注释的那一行吗? session, err := mgo.Dial("mongodb://omind:[email protec

HTML5+JS手机web开发之jQuery Mobile初涉

一.起始之语 我一直都是在PC上折腾网页的,这会儿怎么风向周边捣鼓起手机网页开发呢?原因是公司原先使用Java开发的产品,耗了不少人力财力,但是最后的效果却不怎么好.因为,Android系统一套东西,iPhone又是新的一套,折腾死人呐. 于是总监发狠,让我把手上的活都交出去,专心折腾web版的,看看最后效果如何. 加上我觊觎手机上的开发学习很久了,于是,一拍即合,搞起了手机开发方面的学习. 分享是很好的提高自身学习的方法.因为分享过程中梳理了所学,往往会有些意想不到的心得与收获.如此利人利已的

微信jssdk config:invalid signature 签名错误 ,问题排查过程

invalid signature签名错误.建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 确认config中noncestr, timestamp与用以签名中的对应noncestr, timestamp一致. 确认url是页面完整的url,包括GET参数部分. 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致. 确

在做微信分享到朋友圈时,手机扫码报config:invalid signature,分享后后正常的问题,是url问题

是按照以下步骤检查的 除了ACCESS_TOKEN没有缓存其他都可以 如果是invalid signature签名错误.建议按如下顺序检查: 1.确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 2.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致. 3.确认url是页面完整的url(请在当前页面

微信 js sdk C# 版 invalid signature 问题解决

采用Senparc.Weixin SDK 服务器端代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Senparc.Weixin.MP.CommonAPIs; using Senparc.Weixin.MP.Helpers; using Senparc