美文网首页
小程序开发(获取用户信息和手机号)

小程序开发(获取用户信息和手机号)

作者: 会飞的猪X | 来源:发表于2021-07-23 16:31 被阅读0次

    1、获取手机号

    <button type="primary"  open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信快速登录</button>
    
    getPhoneNumber(event) {
                    let encryptedData = event.detail.encryptedData
                    let iv = event.detail.iv
                     var that = this;
                        wx.checkSession({
                              success() {
                                //session_key 未过期,并且在本生命周期一直有效
                              },
                              fail() {
                                // session_key 已经失效,需要重新执行登录流程
                                wx.login({
                                  success: res => {
                                    code = res.code; 
                                  }
                                })
                              },
                              complete() {
                                // 获取 openid
                                const appID = '';
                                const secret = '';
                                const js_code = code;
                                const grant_type = 'authorization_code';
                                var header = {
                                    'Content-Type': 'application/json'
                                };
                                const params = {appId:appID,secret:secret,code:js_code,grantType:grant_type};
                                console.log(params);
    // 此接口通过后端调用
                                $http.postRequest('/getUserInfo',header,params,(response)=>{
                                    if (response.code == 200) {
                                        //  获取 openid.  
    // WXBizDataCrypt. 微信提供的解密文件 进行解密
                                        let pc = new WXBizDataCrypt(appID,response.rows[0].session_key);
                                        let data = pc.decryptData(encryptedData, iv);
                                        // data.phoneNumber 获取手机号
                                    }
                                },(res)=>{
                                    
                                });
                                
                              }
                        })
                },
    

    项目中如果出现WXBizDataCrypt解析失败的情况,解决办法如下:

    // 提前调用 wx.login方法 获取code 
    onLoad() {
        wx.login({
                success: res => {
              code = res.code;
             }
         }); 
        }
    

    2、获取用户信息
    此方法页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用
    wx.getUserProfile

     <button bindtap="getUserProfile"> 获取用户信息 </button>
    
      getUserProfile(e) {
        // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
        // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
        wx.getUserProfile({
          desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
          success: (res) => {
            this.setData({
              userInfo: res.userInfo,
              hasUserInfo: true
            })
          }
        })
      },
    

    官方文档参考:
    1、小程序登录流程
    2、微信接口获取openid
    3、解密获取openid和手机号
    4、获取用户信息

    相关文章

      网友评论

          本文标题:小程序开发(获取用户信息和手机号)

          本文链接:https://www.haomeiwen.com/subject/zpjhmltx.html