美文网首页
5行代码获取小程序用户手机号

5行代码获取小程序用户手机号

作者: 中v中 | 来源:发表于2022-03-17 22:48 被阅读0次

    最近有很多同学有获取小程序用户手机号的需求。其实云开发出现之前我们获取小程序用户的手机号特别繁琐。自从有了云开发,我们获取用户手机号变得非常简单。只需要5行代码即可。

    老规矩,我们先来看下效果图

    image

    再来看下核心的代码,其实只有下面这一些。


    image

    甚至可以说核心代码只有上图红色框里的两行。是的,你没听错,只靠这2行代码,就可以轻松的获取用户小程序绑定的手机号。
    下面我们就来具体讲解吧。

    注意:1)只有企业小程序认证号才可以获取用户手机号,2)个人小程序没有办法获取的,除非是测试号 3)必须用button来主动触发。

    一,首先要用到button组件的开发能力

    image

    编写wxml文件,代码很简单


    image

    可以看到我们的button按钮,使用了open-type。
    再来看下我们对应的js方法。这样我们点击按钮时,就会弹出授权弹窗。如下图


    image

    不管用户点击拒绝还是允许,我们都能拿到对应的回调。再用户点击了允许以后,就可以获取到以下数据。


    image

    大家看到我们获取的数据里有一个cloudID,其实这个值很有用的。

    二,开发数据检验与解密

    • 1,首先我们看下官方提供的获取手机号的文档。


      image

      看官方文档,可以知道,我们这里涉及到一个数据的检验与解密问题

    • 2,开发数据检验与解密


      image

      这里我们要使用的就是方式二,使用云函数来实现解密,然后拿到用户的手机号。

    三,云函数的编写

    image

    通过上图可以看到,我们编写的云函数很简单。这里主要用的就是cloud.getOpenData这个功能。而这个功能需要的参数就是我们上面第一步获取的cloudID


    image

    这样我们调用云函数的时候,只需要把对应的cloudID传进来即可。


    image

    看下我们的cloudID的作用,再来看下我们通过button的open-type获取的cloudID


    image

    可以看出,我们的cloudID和encryptedData一样,是一串加密数据。我们要通过云函数获取手机号,需要的就是这串加密字段。

    四,上传cloudID获取手机号。

    上面第三步云函数编写好以后,我们就可以来调用了。调用之前一定要记得部署下云函数,一定要记得部署下云函数。。。。


    image

    上图就是我们的云函数的调用

    • 这时候点击按钮,我们就可以获取到了我们所需要的手机号了


      image

      到这里我们就可以轻松的通过云开发获取用户的手机号了,比起传统的后台开发来获取,是不是简单了很多。

    # 云函数部分
    // 云函数入口文件
    const cloud = require('wx-server-sdk');
    // 这里用DYNAMIC_CURRENT_ENV 可以默认初始化为你当前的环境
    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    
    exports.main = async (event, context) => {
    
      return await cloud.getOpenData({
        list: [event.cloudID],
      })
    }
    
    # 小程序部分 js
    //获取手机号
      getPhoneNumber(e) {
        wx.cloud.init({
          traceUser: true,
        })
        wx.cloud.callFunction({
          name: 'phone',
          data: {
            cloudID: e.detail.cloudID //开放数据ID
          }
        }).then(res => {
          console.log(res)
          console.log(res.result.list[0].data.phoneNumber)
        })
      },
    
    # wxml部分
    <button open-type="getPhoneNumber" 
    bindgetphonenumber="getPhoneNumber">
    获取手机号码
    </button>
    

    相关文章

      网友评论

          本文标题:5行代码获取小程序用户手机号

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