惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - zhuzhipeng

工作难找,我在江心洲摆野串,靠一个工具活下来了 约课系统-约刻 Mysql数据库导出数据字典文档Word或者HTML的3个工具 Linux 中 FTP的安装、apache安装并且设置apache的根目录为ftp用户的根目录 mysql中查看所有表、表字段、表注释、字段注释 mybatis-generator自动生成代码插件使用详解 CentOS7安装MySQL maven远程下载失败 手动导包到本地仓库 Linux文件权限一:普通权限(rwx) Git 恢复本地误删的文件 Windows安装Redis(转!) Git忽略已经提交过一次文件Git忽略文件 Intellij IDEA调试功能使用总结(step over / step into / force step into/step out等) Maven配置阿里云中心仓库 简单请求,复杂请求 ubuntu所有php扩展php-7.0扩展列表 Spring Boot整合UEditor不修改源码 beetl模版for循环渲染字符串 Springboot中IDE支持两种打包方式,即jar包和war包
微信公众号分享时,提示invalid signature,签名错误
zhuzhipeng · 2020-01-13 · via 博客园 - zhuzhipeng

按照微信公众平台的开发文档,签名错误排查方法如下:

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(请在当前页面alert(location.href.split('#')[0])确认),包括'http(s)://'部分,以及'?'后面的GET参数部分,但不包括'#'hash后面的部分。

(4)确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。

(5)确保一定缓存access_token和jsapi_ticket。

(6)确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

通过微信签名工具验证,完全符合。前端config 的nonceStr 也无写法错误,非常纳闷。

如果后台返回的config 信息 与微信签名工具校验一致的话,那很有可能是前端访问的url和后台生成签名的url不一致导致,

通过前后台打印分析,url 地址完全一致。我做的是前端传递url给后台,后台接收到的url参与生成签名。这时候注意到,前端传递的url地址是经过 encodeURIComponent的,所以后台接收到需要 decode 一下,比如php 可以用urldecode 函数,再一尝试,成功。。。。。。。

总结如果出现 invalid signature,首先可以确定的是你的签名算法有问题。

签名错误的排查可以这样来:

1:确保基本的appid 正确,获取的access_token和jsapi_ticket 正确

2:校验签名,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。

3:如果签名一致,那问题基本出在浏览器访问的url和参与生成签名的url不一致。

最后附上jssdk的步骤

1:在微信公众号后台配置js 安全域名,即需要引入jssdk的页面域名。 需要在域名根目录下放置微信的检测文件。

2:配置出ip白名单

3:后台开发人员生成签名传递给前台

4:前端页面引入script方式 jssdk文件

5:通过ajax获取config 配置,完成config 配置后即可使用jssdk的各项功能了