收藏
回答

后端Java 获取用户手机号问题?

需求是:根据前端传入的code,需要获取到用户的openID,和手机号;但是因为code只能使用一次,第一次使用就获取用户ID,只能通过第二种方式去获取手机号 phoneInfo = wxMaService.getUserService().getPhoneNoInfo(session.getSessionKey(), encryptedData, iv); 但是这种情况 频繁出现微信返回数据格式错误,原始响应:java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $错误

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

4 个回答

  • 风清雾散云开见日出
    风清雾散云开见日出
    06-20

    看文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

    06-20
    有用
    回复 7
    • 暖兮凛。
      暖兮凛。
      06-20
      我拿获取手机号的code,去获取openId 也没报错,还能拿到openID,和手机号,就是不稳定,偶尔会出现解析错误
      06-20
      回复
    • 风清雾散云开见日出
      风清雾散云开见日出
      06-20回复暖兮凛。
      你用的是旧方法获取手机号码吧。
      06-20
      回复
    • 暖兮凛。
      暖兮凛。
      06-20
      旧方法获取手机号就不用code,用加密的数据去访问
      06-20
      回复
    • 暖兮凛。
      暖兮凛。
      06-20回复风清雾散云开见日出
      我用获取手机号的code 去调用openID(本应该获取openID需要用login的code)结果还能调用....,不应该会报错吗 提示什么code失效或者不存在啥的
      06-20
      回复
    • 风清雾散云开见日出
      风清雾散云开见日出
      06-20回复暖兮凛。
      用手机号码组件的code无法获取openid的。哪来的解析哦,不知道你怎么乱用的。看文档吧
      06-20
      回复
    查看更多(2)
  • showms
    showms
    06-20

    wx.login和获取手机号的code不是同一个,按你的描述你应该是混淆了这两种code

    06-20
    有用
    回复 2
    • 暖兮凛。
      暖兮凛。
      06-20
      那就是login的code获取oepnId,手机号的code获取手机号吗
      06-20
      回复
    • showms
      showms
      06-20回复暖兮凛。
      是的
      06-20
      回复
  • hello world
    hello world
    06-20

    前端有两个code,一个是wx.login的code,一个是获取手机号的code

    06-20
    有用
    回复 1
    • 暖兮凛。
      暖兮凛。
      06-20
      我用获取手机号的code 去调用openID(本应该获取openID需要用login的code)结果还能调用.....
      06-20
      回复
  • 智能回答 智能回答 该问答由AI生成
    06-20
    有用
登录 后发表内容