微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况

需求:微信小程序进行获取手机号登录时,登录失败

微信小程序button api
https://developers.weixin.qq.com/miniprogram/dev/component/button.html

微信小程序 社区 unionid总结
https://developers.weixin.qq.com/community/develop/doc/000c2424654c40bd9c960e71e5b009



bindLogin: function(e) {
    wx.hideLoading();

    console.log(e.detail.errMsg)
    console.log(e.detail.userInfo)
    console.log(e.detail.rawData)

    if (!e.detail.userInfo) {
      return;
    }
    //授权成功,将e.detail.rawData发送给服务端 可以进行解析结果如下
//{
//  "openId": "OPENID",
//  "nickName": "NICKNAME",
//  "gender": GENDER,
//  "city": "CITY",
//  "province": "PROVINCE",
//  "country": "COUNTRY",
//  "avatarUrl": "AVATARURL",
//  "unionId": "UNIONID",  
//  "watermark": {
//    "appid":"APPID",
//    "timestamp":TIMESTAMP
//  }
}
  },

  getPhoneNumber: function(e) {

    console.log(e.detail.errMsg)
    console.log(e.detail.iv)
    console.log(e.detail.encryptedData)
    if (!e.detail.encryptedData) {
      console.info('用户未同意授权')
      return;
    }
    //服务端解析e.detail.encryptedData可得到真实手机号。
 // {
 //   "phoneNumber": "13580006666",
 //   "purePhoneNumber": "13580006666",
 //   "countryCode": "86",
 //   "watermark":
 //   {
 //       "appid":"APPID",
 //       "timestamp": TIMESTAMP
 //   }
}
  },

【情况1】若当前小程序未关联微信开放平台,则没有unionId
解决方案:登录 微信开放平台,绑定小程序。
【情况2】已经关联微信开放平台的小程序,但
(1)即没有关注过公众号,
(2)也没有登录过公众号,
(3)更没有使用微信登录的方式登录过app
则此时,微信接口服务端获取不到unionId
解决方案:通过小程序端的获取用户信息e.detail.rawData 解析到unionId 再传给服务端

image.png

你可能感兴趣的:(微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况)