收藏
回答

在发布版无法获取手机号码,在真机测试里是可以的,是什么问题?

在发布版里,可以弹出申请手机号码框,用户同意后,没反应,无法获取手机号码,在电脑里测试,在真机测试是可以的,是什么问题?

API https://api.weixin.qq.com/wxa/business/getuserphonenumber

 "libVersion": "2.30.3",

以下是代码

getPhoneNumber (e:any) {

var that=this;

      wx.request({

        url: "https://我服务器的链接/xxxxxxx.jsp", // 获取 appid scret

        success: function (res){

          //console.log(res.data.appid+"  "+res.data.secret)

          wx.request({   //  获取  access_token

            url: "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+res.data.appid+"&secret="+res.data.secret,

            success: function (res2){        

              //console.log(res2.data);

                that.setData({

                  access_token:res2.data.access_token,                        

                });

                wx.request({            

                  url: "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token="+res2.data.access_token,

                  method:"POST",

                  data:{

                    code:e.detail.code

                  },

                  header: {

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

                  },      

                  success: function (res3){     // 这里没反应

                      that.setData({   // 这里没反应

                        log:'手机号', // 这里没反应

                        tel:res3.data.phone_info.phoneNumber,     // 这里没反应               

                      });          

                      that.savetel(res3.data.phone_info.phoneNumber); // 这里没反应

                  },

                  fail:function(err){ // 这里没反应

                    wx.showToast({ // 这里没反应

                      title: err.errMsg, // 这里没反应

                      icon:"error",

                      duration:2000

                    });      }        });      }      });     }    }); }

///////////////////////////////////////////////////////////////////////

const app2 = getApp()

 savetel(e:String)  {

    var that=this;

    wx.setStorage({

      key: "tel",

      data: e,

      encrypt: true, // 若开启加密存储,setStorage 和 getStorage 需要同时声明 encrypt 的值为 true

      success() {     

        app2.globalData.phone=e;     // 保存手机号码到全局变量

      }    });  },

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

2 个回答

  • 一笑皆春
    一笑皆春
    2023-08-17

    去后台完善一下用户隐私协议呢

    2023-08-17
    有用 1
    回复
  • Hlxuan.
    Hlxuan.
    2023-08-17

    小程序内不能请求 api.weixin.qq.com ,这个你得在自己服务器里面请求,再返回数据到小程序。

    2023-08-17
    有用 1
    回复
登录 后发表内容