这个错误通常是因为用户没有给予小程序获取手机号的权限导致的。为了解决这个问题,你需要在小程序中获取用户的手机号时,需要先向用户请求授权,获取授权成功后才能获取手机号。

可以通过以下步骤来实现:

  1. 在小程序的 app.json 文件中添加以下代码:
"permission": {
  "scope.userLocation": {
    "desc": '获取你的手机号码以便为你提供更好的服务'
  }
}
  1. 在需要获取手机号的页面中,通过 wx.getSetting 接口获取用户是否已经授权:
wx.getSetting({
  success: (res) => {
    if (res.authSetting['scope.phoneNumber']) {
      // 已经授权,可以直接调用获取手机号的接口
    } else {
      // 未授权,需要调用 wx.authorize 接口,请求用户授权
      wx.authorize({
        scope: 'scope.phoneNumber',
        success: () => {
          // 用户同意授权,可以调用获取手机号的接口
        },
        fail: () => {
          // 用户拒绝授权,无法获取手机号
        }
      })
    }
  }
})
  1. 在用户授权成功后,可以通过 wx.getUserInfo 接口获取用户的手机号:
wx.getUserInfo({
  withCredentials: true,
  success: (res) => {
    console.log(res)
    // 获取用户手机号
    let phoneNumber = res.userInfo.phoneNumber
  }
})

需要注意的是,获取手机号需要用户授权,如果用户拒绝授权,则无法获取手机号。另外,只有在小程序中开启了服务器域名白名单,并且配置了业务域名才能正常获取用户手机号。


原文地址: https://www.cveoy.top/t/topic/ovJs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录