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 一个函数对同一元素的多个事件响应
Jul 25 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
js实现的折叠导航示例
Nov 29 Javascript
JQuery中使用.each()遍历元素学习笔记
Nov 08 Javascript
node.js中的fs.writeFileSync方法使用说明
Dec 14 Javascript
详解js私有作用域中创建特权方法
Jan 25 Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 Javascript
对称加密与非对称加密优缺点详解
Feb 06 Javascript
ES6中参数的默认值语法介绍
May 03 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 13 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
数字转英文
2006/12/06 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
php封装一个异常的处理类
2017/06/08 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
python原始套接字编程示例分享
2014/02/21 Python
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python中实现词云图的示例
2020/12/19 Python
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
生产车间班组长岗位职责
2014/01/06 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
餐饮投资计划书
2014/04/25 职场文书
博士生专家推荐信
2014/09/26 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript