美文网首页
微信小程序:获取用户手机号码

微信小程序:获取用户手机号码

作者: 我的小小笔尖 | 来源:发表于2021-09-28 10:55 被阅读0次

获取用户手机号码有两种方式,第一种方法现对复杂,需要有服务端解码才能获取到手机号码;第二种相对简单,只需要使用云函数即可获取。

第二种方法如下:

page.wxml

使用 button,属性 open-type="getPhoneNumber"
用户点击按钮,弹出授权对话框

  <view class="buttonWrap">
    <button 
      wx:if="{{!hasBindUser}}"
      class="bindUserButton" 
      open-type="getPhoneNumber" 
      bindgetphonenumber="getPhoneNumber">绑定手机号码</button>
  </view>
page.js

用户允许,则 e.detail.errMsg == 'getPhoneNumber:ok'
使用 wx.cloud.callFunction 调用云函数 getPhoneNumber,传参 e.detail.cloudID
成功,则获取手机号码 let phonenumber = res.result.openData.list[0].data.purePhoneNumber

  // 获取用户手机号码
  getPhoneNumber: function (e) {
    console.log('e', e)
    var that = this
    if(e.detail.errMsg == 'getPhoneNumber:ok') {
      // 允许
      wx.cloud.callFunction({
        name: 'getPhoneNumber',
        data: {
          id: e.detail.cloudID
        },
        success: res => {
          console.log('res', res)
          let phonenumber = res.result.openData.list[0].data.purePhoneNumber
          let openid = res.result.openid
          console.log('phonenumber, openid', phonenumber, openid)
          if(phonenumber) {
            // 远程绑定用户
            that.remoteBindUser(phonenumber, openid)
          }else {
            wx.showToast({
              icon: 'none',
              title: 'undefined',
            })
          }
        },
        fail: err => {
          console.log('err', err)
          wx.showToast({
            icon: 'none',
            title: 'fail',
          })
        },
        complete: () => {
          console.log('complete')
        }
      })
    }else {
      // 拒绝
      wx.showToast({
        icon: 'none',
        title: '绑定方可使用',
      })
    }
  },
云函数

return 返回对象中的 openData 中包含了手机号码

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  const openData = await cloud.getOpenData({
    list: [event.id],
  })  

  return {
    openData,
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

相关文章

网友评论

      本文标题:微信小程序:获取用户手机号码

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