小程序获取手机号

495 阅读1分钟

第一步: 首先将使用button标签,将open-type设置为getPhoneNumber

<button class="xjbj" bindgetphonenumber="getPhoneNumber" open-type="getPhoneNumber"></button>

第二步: 通过getPhoneNumber事件获取encryptedData和iv 通过wx.login获取code,换取后台传的openid和session_key image.png

  getPhoneNumber(e){
    console.log(e)
    var that=this
    //只有当用户允许了授权才能继续执行
    if(e.detail.errMsg!="getPhoneNumber:ok"){
      wx.showToast({
        title: '请允许授权认证',
        icon:'none'
      })
      return
    }else{
         that.setData({
          encryptedData:e.detail.encryptedData,
          iv:e.detail.iv
        })
    }
    //通过wx.login获取code
    wx.login({
      success (res) {
        wx.request({
          //获取openid和session_key
         url:app.globalData.htmlurl+'IDPhoto/Jscode2session',
         method:"POST",
         data: {
           code:res.code
         },
         success: function (r) {
          console.log(r)
          var data=r.data;
          if(data.code===0){
            that.setData({
              openid:data.data.openid,
              session_key:data.data.session_key
            })
            wx.setStorage({
              data: that.data.openid,
              key: 'openid',
            })
          }
          wx.showLoading({
            title: '请稍等。。。',
            icon:'none'
          })
          // 获取手机
          wx.request({
           url:app.globalData.htmlurl+'IDPhoto/GetPhoneNumber',
           method:"POST",
           data: {
            encryptedData:that.data.encryptedData,
            iv:that.data.iv,
            session_key:that.data.session_key
           },
           success: function (i) {
            console.log(i)
            var data=i.data;
            if(data.code===0){
              that.setData({
                phone:data.data.phoneNumber,
                num:1
              })
              wx.setStorage({
                data: that.data.phone,
                key: 'phone',
              })
              wx.navigateTo({
                success:function(e){
                  wx.hideLoading();
                },
                url: '/pages/sesuo/sesuo?phone='+that.data.phone+'&openid='+that.data.openid
              })
            }
           },
         })
         },
       })
      }
    })
  },