微信小程序开发-获取微信用户个人信息

 

1、背景

前段时间公司要求做微信小程序的开发,将我们现有移动端的功能在小程序上实现,由于之前是做Android开发的,对小程序其实不咋了解,但领导要求只能硬着头皮上了。

经过一段时间的摸索,能够做一些简单的功能,我们的小程序需要获取微信用户的基本信息以及电话号码,去做用户绑定,所以下面就把获取微信用户信息的过程在此记录一下,以便后面可以进行回顾。

微信小程序官方开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/

2、方法介绍

获取微信公开的用户信息通过 wx.getUserProfile(Object object)方法,其实在之前获取用户信息是通wx.getUserInfo(Object object)方法来实现的。

但微信方面对wx.getUserInfo接口做了调整,所以在此我们微信最新提供的wx.getUserProfile(Object object)方法来获取微信用户信息。

下面对 wx.getUserProfile(Object object) 的参数以及返回值进行简要说明。

2.1 参数 object 

属性类型默认值必填说明
lang string en 显示用户信息的语言
desc string   声明获取用户个人信息后的用途,不超过30个字符
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

其中 desc 是必须要填,用于说明获取用户个人信息的用途。

2.2 object.lang 的合法值

说明最低版本
en 英文  
zh_CN 简体中文  
zh_TW 繁体中文  

2.3 object.success 回调函数

参数

Object res

属性类型说明最低版本
userInfo UserInfo 用户信息对象 2.10.4
rawData string 不包括敏感信息的原始数据字符串,用于计算签名 2.10.4
signature string 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,详见 用户数据的签名验证和加解密 2.10.4
encryptedData string 包括敏感数据在内的完整用户信息的加密数据,详见 用户数据的签名验证和加解密 2.10.4
iv string 加密算法的初始向量,详见 用户数据的签名验证和加解密 2.10.4
cloudID string 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 2.10.4

上面的方法介绍以及参数解释均来源于微信小程序官方开发文档。

3、具体使用

第一步、 新建一个小程序工程,建立一个测试页面,如下所示:

第二步、 写代码

首先给 getuserinfo.wxml 中添加如下布局代码:

<!--pages/getuserinfo/getuserinfo.wxml-->
<view>申请获得你的公开信息(用户昵称、头像、城市等)</view>
<button bindtap="getUserProfile">获取用户基本信息</button>
<text >获取到的用户信息:</text>
<rich-text >{{userInfoStr}}</rich-text>

其次在getuserinfo.js 中添加如下实现代码:

// pages/getuserinfo/getuserinfo.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo:{},
    userInfoStr :''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
        //查看是否授权
        wx.getSetting({
          success: function(res) {
            if (res.authSetting['scope.userInfo']) {
              console.log("用户授权了");
            } else {
              //用户没有授权
              console.log("用户没有授权");
            }
          }
        });
  },

  getUserProfile: function(res) {
    wx.getUserProfile({
      desc: '用于微信账号与平台账号绑定', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res)=>{
        console.log("获取到的用户信息成功: ",JSON.stringify(res));
        this.setData({
          userInfo: res,
          userInfoStr: JSON.stringify(res)
        })
      },
      fail: (res)=>{
        console.log("获取用户个人信息失败: ",res);
         //用户按了拒绝按钮
               wx.showModal({
                  title: '警告',
                  content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
                  showCancel: false,
                  confirmText: '返回授权',
                  success: function(res) {
                    // 用户没有授权成功,不需要改变 isHide 的值
                    if (res.confirm) {
                      console.log('用户点击了“返回授权”'); 
                    }
                  }
       });
      }
    })
},
})

完成之后,编译运行到真机(注意一定要运行到手机真机上,不然会报getUserProfile找不到)。

4、运行结果

运行结果如下所示:

​   

 点击 ”获取用户基本信息“ 按钮:

 

点击  ”允许“ 按钮:

​   

 点击 ”拒绝“ 按钮​

  

好了到这里获取微信用户个人信息的功能基本是实现了。

如果文章对你有所帮助动动你的小手点个赞哟~

 

下一篇文章记录一下怎样获取微信手机号码。

posted @ 2021-05-19 14:08  BlueVictory  阅读(2242)  评论(0编辑  收藏  举报