收藏
回答

获取用户手机号失败报错?

在第一次获取到手机号之后,点击登出,登出就是删除本地存储的openId,如果检测session_key”未过期那么会保存,直到下一次点击登录获取手机号,就把未过期的session_key再次传到后台解密手机号,但是一直报错“

Cannot read property 'phoneNumber' of null;at api request success callback function

TypeError: Cannot read property 'phoneNumber' of null



如果登出后保存'session_key'时间过长就会报错,如果立马再次使用未过期的‘session_key’获取手机号就不会报错,这是为什么?




回答关注问题邀请回答
收藏

6 个回答

  • 禾店短剧系统
    禾店短剧系统
    2021-06-10

    目前该接口针对非个人开发者,且完成了认证的小程序开放(不包含海外主体)。需谨慎使用,若用户举报较多或被发现在不必要场景下使用,微信有权永久回收该小程序的该接口权限

    请确认:1、非个人小程序;2、已完成认证且不是海外主体


    2021-06-10
    有用 1
    回复
  • 王斌
    王斌
    2022-03-29

    请问这个问题解决了吗,我遇到了相同的问题。

    2022-03-29
    有用
    回复
  • 三世羽翾
    三世羽翾
    2019-08-26

    看报的错并不是解密出错了,官方给出的解密数据是

    {
        "phoneNumber": "13580006666",
        "purePhoneNumber": "13580006666",
        "countryCode": "86",
        "watermark":
        {
            "appid":"APPID",
            "timestamp": TIMESTAMP    }}

    其实最终结果可能不包含phoneNumber还是purePhoneNumber,具体要看解密是否正常了,查查后台的上一步解密出了什么,或者报了什么错,才能准确定位问题

    2019-08-26
    有用
    回复 1
    • 思儿
      思儿
      2019-08-27
      好的,谢谢
      2019-08-27
      回复
  • 2019-08-23

    wx.login 拿个code 去换个session_key 然后用这个去解加密data

    2019-08-23
    有用
    回复 1
    • 思儿
      思儿
      2019-08-27

      是的,我是这样写的,但是我写了个登出方法,其实也就是删除获取到的手机号,再次点击登录的时候把未过期的session_key再次传到后端解密手机号,如果这个期间停留时间过长,就会出现解密失败,但是检测到的session_key

      又确实是未过期


      2019-08-27
      回复
  • 铭锋科技
    铭锋科技
    2019-08-23

    那就是需要重新wx.login一下

    2019-08-23
    有用
    回复 1
    • 思儿
      思儿
      2019-08-23
      wx.login是需要重新调用,但是我是点击调用哦
      2019-08-23
      回复
  • 睡前原谅一切
    睡前原谅一切
    2019-08-23

    有地址么 发你个文档

    2019-08-23
    有用
    回复 1
    • 思儿
      思儿
      2019-08-23
      谢谢诶。820815623@qq.com
      2019-08-23
      回复
登录 后发表内容
问题标签