广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >VUE如何解决微信签名及SPA微信invalid signature问题
  • 261
分享到

VUE如何解决微信签名及SPA微信invalid signature问题

2024-04-02 19:04:59 261人浏览 八月长安
摘要

这篇文章主要介绍了Vue如何解决微信签名及SPA微信invalid signature问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求

这篇文章主要介绍了Vue如何解决微信签名及SPA微信invalid signature问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

需求: 使用微信的功能

原因:

1. 项目基于vue,在微信上的WEB应用

2. 要使用上传功能(不同系统的兼容真的很多BUG,最后只能使用微信方案),支付功能,定位....

3. 签名一直存在bug和问题,那么后面的功能都会唤不起(偶尔也可以)

签名

1. 流程详细请看文档,反正能力有限,没看出什么名堂,总结一句话,要使用先签名

2. 开启填坑之路,由于微信使用会区分iOS和安卓系列,不同系列产生不一样的问题

(公司项目第一版的时候就给微信大坑过,所以本次重构的时候,就格外注意这一点)

安利一个在微信下能检测内核的判断:window.__wxjs_is_wkwebview(是否为webview内核),如果是的情况下就变成true

因为SPA应用下,会有一定的问题,路由采用的是history模式(不带#号)。因为在页面每次进入到路由之后才去获取签名授权,所以将方法公用写在路由的模块下

VUE如何解决微信签名及SPA微信invalid signature问题

router.afterEach((to, from) => {    //   伸手党福利
 // window.__wxjs_is_wkwebview
  // true 时 为 ioS 设备
  // false时 为 安卓 设备
 if (window.__wxjs_is_wkwebview) { // IOS
  if (window.entryUrl == '' || window.entryUrl == undefined) {
   var url = `${FRONT_BASE}${to.fullPath}`
   window.entryUrl = url  // 将后面的参数去除
  }
  getWxAuth(to.fullPath,"ios")
 }else {    // 安卓
  setTimeout(function () {
   getWxAuth(to.fullPath,"Android")
  }, 500);
 }
})
  • window.entryUrl这个是什么鬼?这个是自己定义的全局属性,就是为了获取IOS第一次进入页面的时候存储起来的,如果IOS的签名的路径不是第一次进入的页面,那么就一定会失败,所以这个路由第一次进入就要储存起来

  • 为什么要写在router.afterEach,因为页面进入了再去做申请和签名,如果在beforeEach,会导致页面申请签名的时候还是上一个页面,但是到了新页面却没有注册签名,或者因为签名的路径不同,导致invalid signature

  • 为什么安卓的时候要增加一个延时器,因为安卓会存在一些情况,就是即便签名成功,但是还是会唤不起功能,这个貌似是一个比较稳妥的解决办法,

看完路由模式了,就来进入逻辑部门,来看看如何处理

VUE如何解决微信签名及SPA微信invalid signature问题

有同学疑惑这个encodeURIComponent是干嘛用的,其实具体很简单,就是因为我们在微信分享的时候,会自动给我们带上参数(记得告诉后端的伙伴要decodeURIComponent),切记只要带参数就一定要转码!

对于IOS系统会自动增加如下参数:

  • 朋友圈 from=timeline&isappinstalled=0

  • 微信群 from=groupmessage&isappinstalled=0

  • 好友分享 from=singlemessage&isappinstalled=0

对于安卓系统会自动添加如下参数:

  • 朋友圈 from=timeline

  • 微信群 from=groupmessage

  • 好友分享 from=singlemessage

然后就直接去请求签名,写法就不深究,getWeChat是封装的axios,只是为了统一管理才这么写,大家可以写成正常的请求axios('xxxx.com/get-wx',obj).then()这样的写法,一样的效果

VUE如何解决微信签名及SPA微信invalid signature问题

到了这一步就基本上是请求签名成功,但是有同学疑惑,那么IOS每次分享的时候会不会是进去的第一个路由,我的回答是会的(需要稍加处理)

VUE如何解决微信签名及SPA微信invalid signature问题

感谢你能够认真阅读完这篇文章,希望小编分享的“VUE如何解决微信签名及SPA微信invalid signature问题”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网VUE频道,更多相关知识等着你来学习!

--结束END--

本文标题: VUE如何解决微信签名及SPA微信invalid signature问题

本文链接: https://www.lsjlt.com/news/76489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VUE如何解决微信签名及SPA微信invalid signature问题
    这篇文章主要介绍了VUE如何解决微信签名及SPA微信invalid signature问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求...
    99+
    2022-10-19
  • 如何解决微信二次分享报错invalid signature的问题
    这篇文章主要为大家展示了“如何解决微信二次分享报错invalid signature的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信二次分享报错...
    99+
    2022-10-19
  • 微信活码技术如何解决微信群二维码失效问题
    我们都知道微信群未满100人之前可以分享群二维码,让我们的粉丝通过扫码进群,但是人数超过100后,发出的二维码就失效了,无法再次扫码进群,因此,很多人会有微信群满100人怎么再加人,今天给大家介绍下活码技术。传统的解决方式可能是,重新建一个...
    99+
    2023-06-04
  • 如何解决HTML5微信播放全屏问题
    这篇文章主要为大家展示了“如何解决HTML5微信播放全屏问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决HTML5微信播放全屏问题”这篇文章吧。在io...
    99+
    2022-10-19
  • 如何解决ios配置微信config出现验签失败的问题
    这篇文章给大家分享的是有关如何解决ios配置微信config出现验签失败的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在开发中,出现了一个关于微信配置的问题。使用的开发工具以及开发框架为 uniapp , ...
    99+
    2023-06-14
  • 如何解决php微信登录41001错误问题
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑如何解决php微信登录41001错误问题?小程序登录解密用户数据encryptedData -41001: encodingAesKey 非法做小程序微信授权登录遇到的坑...
    99+
    2017-04-02
    php
  • 微信小程序getUserInfo授权问题如何解决
    本篇内容主要讲解“微信小程序getUserInfo授权问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序getUserInfo授权问题如何解决”吧!设置一个用户授权登录的过渡页...
    99+
    2023-06-26
  • 如何解决微信小程序入口场景的问题
    这篇文章主要为大家展示了“如何解决微信小程序入口场景的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信小程序入口场景的问题”这篇文章吧。前言最近一...
    99+
    2022-10-19
  • 如何解决微信浏览器下拉黑边的问题
    这篇文章主要介绍了如何解决微信浏览器下拉黑边的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开始由于在开发微信页面的时候下拉黑边的情况很...
    99+
    2022-10-19
  • nuxt如何解决微信公众号支付遇到的问题
    这篇文章将为大家详细讲解有关nuxt如何解决微信公众号支付遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景:nuxt为默认的history模式,用这个npm ...
    99+
    2022-10-19
  • 如何解决vue单页面在微信下只能分享落地页的问题
    这篇文章主要介绍如何解决vue单页面在微信下只能分享落地页的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实际上关键词叫 微信pushState只能分享落地页 更贴切一点应用场景...
    99+
    2022-10-19
  • 如何解决微信公众号开发无法支付的问题
    小编给大家分享一下如何解决微信公众号开发无法支付的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前提:由于涉及公司业务,部分...
    99+
    2022-10-19
  • 如何解决微信小程序中textarea层级过高的问题
    这篇文章给大家分享的是有关如何解决微信小程序中textarea层级过高的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。建立一个新的textarea 组件代替原生textare...
    99+
    2022-10-19
  • 微信小程序中如何解决IOS和Android兼容的问题
    这篇文章将为大家详细讲解有关微信小程序中如何解决IOS和Android兼容的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。微信小程序开发之IOS和Android兼容的...
    99+
    2022-10-19
  • 如何解决微信小程序出现wx.getLocation再次授权的问题
    这篇文章主要介绍了如何解决微信小程序出现wx.getLocation再次授权的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:首...
    99+
    2022-10-19
  • 企业开发微信小程序流量获取问题如何解决
    今天小编给大家分享一下企业开发微信小程序流量获取问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。(一)迎合现有市场...
    99+
    2023-06-27
  • 如何解决微信小程序控制台提示warning警告的问题
    这篇文章将为大家详细讲解有关如何解决微信小程序控制台提示warning警告的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在小程序控制台开发中遇到提示: warnin...
    99+
    2022-10-19
  • 如何解决微信浏览器缓存站点入口文件的问题
    这篇文章给大家分享的是有关如何解决微信浏览器缓存站点入口文件的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近开发的微信公众号项目中(项目采用Vue + Vux 构建,站点...
    99+
    2022-10-19
  • 微信小程序中如何解决腾讯地图显示偏差问题
    这篇文章主要介绍微信小程序中如何解决腾讯地图显示偏差问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景在小程序中使用map组件,可以调用腾讯地图的API,将一些固定的点标记到地图...
    99+
    2022-10-19
  • 解决问题备忘:Http头Authorization值格式错误,请参考《微信支付商户REST API签名规则》
    环境:php7.3.4nts ...
    99+
    2023-09-01
    微信公众平台 Powered by 金山文档
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作