vue实现微信获取用户信息的方法


Posted in Javascript onMarch 21, 2019

本次项目做到一个点赞功能,即分享出去一个页面给微信好友,微信好友点开并点赞,需要将点赞用户的微信昵称,微信头像以及微信openid,微信unionid(这个需要关注公众号才会有该字段)传给后端,记录点赞人的相关信息

代码如下

// created 周期
if(this.$route.query.from) { // 判断链接中是否有from参数,下面的studentId,activityId项目需要
 let _nowUrl = window.location.href.split('?')[0] + `?resource=1&studentId=${this.$route.query.studentId}&activityId=${this.$route.query.activityId}`
 let _shareUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(_nowUrl)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
 window.location.href = _shareUrl
 return
}
// 处理微信用户信息
 handleWechatMsg(code) {
  // 调取 获取微信用户信息的接口(后端参考微信官方文档进行封装)  code--参数
  api.getWechatInfo(code).then((res)=>{
   if(res.data.code == 200) {
    // 返回的是json字符串
    let _data = res.data.content
    let _personMsg = JSON.parse(_data)
    this.wechatMsg = _personMsg
    // 本地存储微信用户信息,防止页面被刷新,code失效
    window.localStorage.setItem('wechatMesssage', _data)
   } else if (res.data.code == 400) { // 400-code失效,400是后端返回,具体看后端返回哪个码
    let msgs = window.localStorage.getItem('wechatMesssage')
    this.wechatMsg = JSON.parse(msgs)    
   } else {
    this.$Message.message(res.data.message);
   }

  })
 },

如果需要获取微信unionid,则需要引导用户关注公众号,可以在返回的用户信息中判断是否含有unionid,如果没有,可以展示微信公众号的二维码,供用户识别关注

⚠️--------------------

  1. 当前页面的域名,需要在公众号后台配置添加(详见官网)
  2. 如果页面存在#,可能会出问题,可以使用nginx进行配置

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个简单的JavaScript数据缓存系统实现代码
Oct 24 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
一些实用性较高的js方法
Apr 19 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
利用jQuery实现简单的拖曳效果实例代码
Oct 20 jQuery
Vue之mixin全局的用法详解
Aug 22 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
JS如何生成随机验证码
Mar 02 Javascript
帮你提高开发效率的JavaScript20个技巧
Jun 18 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 #Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 #Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 #Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 #Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 #Javascript
详解vue中axios的使用与封装
Mar 20 #Javascript
javascript数组去重方法总结(推荐)
Mar 20 #Javascript
You might like
phpmyadmin操作流程
2006/10/09 PHP
用php和MySql来与ODBC数据连接
2006/10/09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
chrome浏览器如何断点调试异步加载的JS
2016/09/05 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
js实现tab切换效果
2017/02/16 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python原始字符串(raw strings)用法实例
2014/10/13 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
python中如何进行连乘计算
2020/05/28 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
浙江文明网签名寄语
2014/01/18 职场文书
公司授权委托书范本
2014/04/03 职场文书
工程售后服务承诺书
2014/05/21 职场文书
教师辞职信范文
2015/02/28 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python