没有合适的资源?快使用搜索试试~ 我知道了~
首页微信分享invalid signature签名错误踩过的坑
微信分享invalid signature签名错误踩过的坑
16 下载量 160 浏览量
更新于2023-03-16
评论 1
收藏 48KB PDF 举报
前一段时间做了一个微信分享的东西,而且前端框架用的是VUE,被这个东西快折磨疯了,一个列表页,一个详情页,分享详情页的时候,会报错invalid signature签名错误。 当时就不淡定了,然后开始了排坑之路,根据官网的各种校验错误问题,没有发现有什么区别 建议按如下顺序检查: 1.确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。 2.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。 3.确认
资源详情
资源评论
资源推荐
微信分享微信分享invalid signature签名错误踩过的坑签名错误踩过的坑
前一段时间做了一个微信分享的东西,而且前端框架用的是VUE,被这个东西快折磨疯了,一个列表页,一个详情页,分享
详情页的时候,会报错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),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,
将导致分享后的页面签名失败。
究竟什么导致呢,后来发现是history在微信中的问题,就是当从列表进入详情页的时候,往后台传入URL,跟你直接从详情页
进入传的URL不一致。比如:A=>B,分享B
这时候你需要记录初始页的url,解决办法在你的main.js里,添加
router.beforeEach((to, from, next) => {
if (!window.initUrl) {
window.initUrl = location.href.split('#')[0] }
next()
})
然后在你的详情页里B获取
url: ‘….?url=’ + encodeURIComponent(that.isIosOrAndroid() === ‘android’ ? location.href.split(‘#’)[0] :
window.initUrl)
在这里要判断是android还是ios,因为再android里显示是正常的,所以就用
location.href.split('#')[0]
直接获取当前的url即可。
// 判断ios还是android
Vue.prototype.isIosOrAndroid = function () {
let u = navigator.userAgent;
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 // android终端
let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端
let isStr = ''
if (isAndroid) {
isStr = 'android'
}
if (isiOS) {
isStr = 'ios'
}
return isStr
}
总结总结
weixin_38618315
- 粉丝: 1
- 资源: 921
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0