评论

【面向公告编程】关于 getPhoneNumber 安全升级后获取手机号的误区

【面向公告编程】关于 getPhoneNumber 安全升级后获取手机号的误区

前言

近期小程序更新的基础库 2.21.2 ,微信官方对获取用户手机号的逻辑进行了安全升级(传送门:小程序基础库 2.21.2 更新),接下来作者带你解读官方公告,进一步提升“面向公告编程”能力。

误区

  • 1、为什么「bindgetphonenumber」事件回调中没有返回 code 参数?

① 确认当前基础库版本是否为 2.21.2 及以上。
② 目前开发者工具未兼容此表现(近期应该会同步),目前以真机调试为准。

  • 2、为什么我传了 code 后端报 40029 错误码?

① 手机号获取凭证 code 并非 wx.login 获取的 code ,而是 button 组件 open-type="getPhoneNumber" 通过 bindgetphonenumber 事件回调获取的,具体参考手机号获取文档
② 手机号获取凭证 code 有效期为 5 分钟,并且只能消费一次。确认是否过期或者已经被二次使用过。

  • 3、这个更新是不是我一定要跟着修改自己的业务呢?

不一定需要,按照原来的逻辑去获取也没问题,只不过微信提供了更为安全的解密方案。
总结一句话就是:为了用户数据安全,从基础库 2.21.2 开始就可以使用新的逻辑解密获取用户手机号,相关接口 phonenumber.getPhoneNumber

  • 4、为什么真机基础库已经是 2.21.2 了,但是还是没返回 code 参数?

正常情况下,基础库 2.21.2 对应的是客户端版本号为 8.0.16,如果你的版本低于 8.0.16 并且是通过开发者工具向客户端推送的 2.21.2 基础库,大几率不会返回 code 参数,请手动更新微信版本。
基础库对应版本分布:传送门

最后

  • 祝大家没有改不完的 bug 和踩不完的坑,有疑问欢迎在下方留言或者发社区私信。

最后一次编辑于  2021-12-30  
点赞 4
收藏
评论

22 个评论

  • 想有钞能力
    想有钞能力
    2022-11-16

    为啥完成了认证,还是提示没有权限,小程序是企业的

    2022-11-16
    赞同 1
    回复 1
    • 发财
      发财
      2024-01-07
      你的解决了吗?
      2024-01-07
      回复
  • W
    W
    2022-06-10


    <button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
    Page({
      getPhoneNumber (e) {     
        console.log(e)
      }
    

    报错:

    Component "pages/mine/index" does not have a method "getPhoneNumber" to handle event "getphonenumber".

    换成下面的

    <button @getphonenumber="getPhoneNumber" />
    

    wxml页面直接无法加载,这怎么回事?有那位大哥能解答一下吗


    2022-06-10
    赞同 1
    回复
  • 老苏
    老苏
    2022-02-20

    总之一句话: 我们是垃圾中的战斗机,你们爱用不用。


    2022-02-20
    赞同 1
    回复 1
    • 老苏
      老苏
      2022-02-20
      微信平台就是老大,你们都要看我脸色行事,文档?文档!是有的,看不明白,乱,,更新不及时,不知所云,那是你们的事情,再者,你们水平不够。。。。。
      2022-02-20
      回复
  • 风
    2023-12-22

    田文镜!!!!

    2023-12-22
    赞同
    回复
  • 缺一不可
    缺一不可
    2023-03-24

    一直授权登录跟微信版本有关系吗,用户说一直在授权手机号 ,微信版本是8.0.6


    2023-03-24
    赞同
    回复
  • 陈旭照
    陈旭照
    2022-10-19

    您好,我们用 code去获取用户手机号 报 40029 错误码,新建了一个小程序 用同样的代码去执行就不报错,大概是哪里除了问题呢?谢谢楼主指点。


    2022-10-19
    赞同
    回复
  • OC
    OC
    2022-08-27

    在开发者工具里得到的数据既有code,又有encryptedData,这是正常的吗?

    2022-08-27
    赞同
    回复
  • 江
    2022-04-08

    开发者工具还未兼容嘛

    2022-04-08
    赞同
    回复 2
    • brave
      brave
      2022-04-08
      更新工具至最新版本
      2022-04-08
      回复
    • 我是谁
      我是谁
      2022-05-16
      还是没有呀
      2022-05-16
      回复
  • 变化在高处
    变化在高处
    2022-04-01

    为什么我的code获取时32位而不是64位呢?每次都报40029

    2022-04-01
    赞同
    回复
  • 我是一个粉刷匠
    我是一个粉刷匠
    2022-03-17

    请问官方,我这边在测试接口(postman)的时候是能回获取到手机号的,可是我在编码的时候就报这个错误,我很是费解,知道原因吗,踩了很久了。盼回复。。。,版本号是2.23.0的,我确定域名都是正确的。

    2022-03-17
    赞同
    回复 1
    • brave
      brave
      2022-03-18
      看下是不是接口地址https://写错http://的缘故
      2022-03-18
      回复

正在加载...

登录 后发表内容