收藏
回答

getPhoneNumber返回undefined

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug getPhoneNumber 工具 7.0.4 2.2.5


getPhoneNumber: function (e) {//点击获取手机号码按钮




var that = this;



wx.checkSession({


success: function () {


console.log(e.detail.errMsg)

console.log(e.detail.iv)


console.log(e.detail.encryptedData)

------------------------------------------


console.log(e.detail.iv)

console.log(e.detail.encryptedData)


以上这二个返回都是undefined


不知道是什么原因,麻烦指点

最后一次编辑于  05-17
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    05-17

    你好,麻烦提供下代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    05-17
    赞同
    回复 5
    • 黄琪峰~智能开关|物联网定制开发
      黄琪峰~智能开关|物联网定制开发
      05-17

      //WXML

      <button class='pop_btn' plain="true" open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">获取用户手机号</button>



      // pages/try/try.js

      Page({


      data: {


      },


      /**

        * 生命周期函数--监听页面加载

        */

      onLoad: function (options) {

      wx.login({

      success: function (res) {

      console.log(res)

      if (res.code) {

      //发起网络请求

      wx.request({

      url: 'https://XXXXXX',

      data: {

      'code': res.code

      },

      method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

      header: {

      'content-type': 'application/json'

      }, // 设置请求的 header

      success: function (res) {

      console.log(res);

      wx.setStorageSync('sessionKey', res.data);


      },

      fail: function (err) {

      console.log(err);

      }

      })

      } else {

      console.log('获取用户登录态失败!' + res.errMsg)

      }

      }

      });


      },




       


      getPhoneNumber: function (e) {//点击获取手机号码按钮




      var that = this;



      wx.checkSession({


      success: function () {


      console.log(e.detail.errMsg)

      console.log(e.detail.iv)


      console.log(e.detail.encryptedData)




      var ency = e.detail.encryptedData;


      var iv = e.detail.iv;


      var sessionk = that.data.sessionKey;




      if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {


      that.setData({


      modalstatus: true


      });


      } else {//同意授权


      wx.request({


      method: "GET",


      url: 'https://XXXXXX',


      data: {


      encrypdata: ency,


      ivdata: iv,


      sessionkey: sessionk


      },


      header: {


      'content-type': 'application/json' // 默认值


      },


      success: (res) => {


      console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");


      console.log(res);


      var phone = res.data.phoneNumber;


      console.log(phone);




      }, fail: function (res) {


      console.log("解密失败~~~~~~~~~~~~~");


      console.log(res);


      }


      });


      }


      },


      fail: function () {


      console.log("session_key 已经失效,需要重新执行登录流程");


      that.wxlogin(); //重新登录


      }


      });




      },




      })


      05-17
      回复
    • 黄琪峰~智能开关|物联网定制开发
      黄琪峰~智能开关|物联网定制开发
      05-17回复黄琪峰~智能开关|物联网定制开发

      点允许后就出现这个界面

      05-17
      回复
    • 社区技术运营专员-小柿子
      社区技术运营专员-小柿子
      05-20回复黄琪峰~智能开关|物联网定制开发

      麻烦提供下这类型的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      05-20
      回复
    • 黄琪峰~智能开关|物联网定制开发
      黄琪峰~智能开关|物联网定制开发
      05-20回复社区技术运营专员-小柿子

      已解决!就是填写验证下手机号就行了

      05-20
      1
      回复
    • 杨连欢
      杨连欢
      10-19
      怎么解决的,我也遇到了
      10-19
      1
      回复