微信企业号 jsSDK wx.config报invalid signature错误,导致api接口无法使用

最近在做公司定制化的时候发现一个问题,使用微信的语音API的时候微信报错,错误信息为:the permission value is offline verifying

但是诡异的是:同样的代码在我们公司的产品上就不会报这个错误,可以正确调用接口。但是放在客户的服务器上,wx.config里面的参数配置成客户微信企业号信息就会报错。

通过查询发现,微信JS-SDK的附录5已经说明了这个问题可能存在的原因

通过排查,发现23没有问题,所以将焦点放在了第一个。

通过微信提供的web调试工具发现wx.config果然报错了,错误代码invalid signature,意思是签名错误

再去微信JS-SDK里面查这个错误发现如下说明

通过微信提供的微信 JS 接口签名校验工具进行验证,发现后台计算的结果和工具得到的结果一致,说明后台算法没有错。

然后把目光放在了生成签名的几个参数上面

因为之前在公司产品上是没问题的,所以我们认为前三个参数都没有问题,可能是最后一个url参数有问题,遂通过一番查找分别查询了如下几个方面。

1、确认url是页面完整的url(请在当前页面alert(location.href.split(‘#‘)[0])确认),包括‘http(s)://‘部分,以及‘?‘后面的GET参数部分,但不包括‘#‘hash后面的部分,url是动态获取的。

2、去微信企业号后台确认可信域名是否正确并符合规则。

结果,发现所有的配置都没有问题,算法也没有问题,但是错误依然存在,于是bug的解决陷入了停滞。

于是开始了各种问,各种找,在某一个群上询问是大神的一句“反向代理”,让绝境有了一线生机,后台同学说我们的项目是通过反向代理来映射到我们公司的服务器上的。

于是,通过后台调试发现,果然生成秘钥的url域名并不是可信域名,而是反向代理设置的域名,于是乎,问题终于是解决了。

时间: 2024-10-26 19:12:24

微信企业号 jsSDK wx.config报invalid signature错误,导致api接口无法使用的相关文章

.NET 微信开发 JSSDK配置 wx.config调用 invalid signature签名错误分析

官方文档 要认真看一遍之后,开始搞 JSSDK是网页调用微信功能的配置文件.在这里浪费了大量时间  所以记录一下.(吐槽下微信返回的错误信息,也是没谁了...) 页面先配置一下.注释里几个参数,可以用ajax会获取. <script type="text/javascript"> wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端

vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 &quot;invalid signature&quot;错误解决方案

项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后,pc端微信开发者工具与Android手机 内测试分享都没问题,无论怎么跳转再分享也没问题.IOS 手机,首次到页面分享没问题,但是跳转后,就会报invalid signature 签名错误. 就是说 从 [http://aaa.com/index] 跳到 [http://aaa.com/detail

微信企业号 JS-SDK:上传图片

微信企业号 JS-SDK:上传图片 微信的JS-SDK提供了微信客户端相关的功能,如:拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫等微信特有的能力,为微信用户提供更优质的网页体验.这里将会介绍如何通过调用JS-SDK接口从手机摄像头或相册内上传图片. 目录 1. 介绍 2. 代码示例 1. 介绍 1.1 流程说明 首先看下整个Demo的流程: ①微信客户端访问页面 ②获取JS-SDK中的相关权限 API:http://qydev.weixin.qq.com/wiki/

[转]微信JSAPI 微信内置JSAPI 2015年1月官方正式API接口,分享完整实例

FROM : http://www.oschina.net/code/snippet_2276613_45290 HTML通过微信,分享朋友圈出发此JSAPI <?php require_once "jssdk.php"; $jssdk = new JSSDK("yourAppID", "yourAppSecret"); $signPackage = $jssdk->GetSignPackage(); ?> <!DOCTY

Python 使用timeit模块计算时间复杂度时系统报“invalid syntax”错误

最近在看算法相关的文档 在时间复杂度环节 遇到一个实例: 导入timeit模块后,通过Timer定时器计算两种不同处理方法的时间复杂度 错误代码及报错如下图所示: 仔细查阅 发现from__main__import 不是一个连续的变量 而是由 from+__main__+import 三部分组合而成 将红框中的代码改为绿框中的代码之后 代码可以正确执行 正确结果如下: 原文地址:https://www.cnblogs.com/QianyuQian/p/12084433.html

微信公众号 JSSDK 提示:invalid signature

要命的invalid signature.其实腾讯的文档已经写了,只能怪我自己理解能力太差,掉了好几次坑. 签名要用到的jsapi_ticket需要保存的,2小时有效期.如果在2小时内出现问题需要删除才能工作,一般是自身程序的问题,请检查. nonceStr和noncestr的大小写,当心! url一定要当心,如果是"http://x.com/jspay?oid=0&attr=1#wechat"的形式,那么应该保留的是"http://x.com/jspay?oid=0

javascript获取wx.config内部字段解决微信分享

转自:http://www.jb51.net/article/80679.htm 专题推荐:js微信开发_脚本之家 http://www.jb51.net/Special/879.htm 背景在微信分享开发的时候我们通常的流程是 <?php require_once "jssdk.php"; $jssdk = new JSSDK("yourAppID", "yourAppSecret"); $signPackage = $jssdk->

微信企业号 获取用户信息

业务操作最基础的一个功能是获取访客的身份,传统的获取方式是提供一个登录页面用以访客登录. 在微信企业号中,用户在微信中访问页面时,可以根据相关API获取此用户的微信账号信息,以此来匹配业务服务器存储的相关用户信息. 目录 1.  介绍 2.  代码示例 1. 介绍 1.1 说明 企业号的网页开发,说白了就是移动端web开发,特殊点在于如何获取微信用户的身份信息. 在企业号中可以进行如下步骤获取微信用户信息: 访问一个业务页面时,可通过OAuth验证接口获取此用户信息 → 根据code获取user

invalid signature

微信公众号开发遇到了invalid signature这个问题 ,各种思路都尝试遍了还是未能解决,幸运的是最终还是解决了,现在就来谈谈我的解决方案,都是血的教训.... 按照腾讯提供的步骤: 1,确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验 2,确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致.