收藏
回答

最新的【手机号快速验证组件】如何避免恶意频繁调用?

官方文档的原文描述和链接如下:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

自2023年8月26日起,手机号快速验证组件将需要付费使用。标准单价为:每次组件调用成功,收费0.03元。

扣费节点:开发者获得 bindgetphonenumber 事件的 success 回调信息时,进行扣费。


如果有用户恶意频繁(写一个自动化脚本,自动去点击授权手机号的按钮等等)调用该如何规避呢?

手机号快速验证组件是这样的:

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>

只能在botton组件上添加open-type属性为getPhoneNumber,且用户点击才能触发。


开发者想在点击按钮前去进行一些校验和逻辑判断是不可行的。小程序能开放手机号授权弹窗的方法吗,让开发者可以用api的方式唤起手机号授权弹。这样开发者才能在此之前做一些校验和逻辑判断。

如果不开放这个功能,现在好像没有其他的可以规避这个问题,官方能给个统一的解决方案吗?


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

8 个回答

  • 第三方平台小助手
    第三方平台小助手
    2023-07-05

    你好,平台会采取一定的安全策略,避免疑似风险用户产生的恶意消耗和费用,但建议开发者仍需综合评估和制定完整的安全策略技术方案。

    2023-07-05
    有用
    回复 1
    • new world
      new world
      2023-07-05
      能说具体点吗,
      1. 那些行为平台会认为是风险用户产生的恶意消耗和费用?一个用户每天调用多少次或某一时段频繁调用多少次才算恶意消耗?
      2. 如果发生恶意消耗的情况平台会给小程序管理员或开发者推送信息告知吗?恶意消耗的用户会被禁止调用微信授权手机号接口吗?返回的错误码是什么?
      3. 风险用户产生的恶意消耗和费用平台会返还这些费用吗?如果返还会以什么方式呢?

      这个问题请官方重视一下。
      2023-07-05
      1
      回复
  • 仲夏初八。
    仲夏初八。
    01-10

    mark一下,搬个凳子看腾讯倒卖手机号。 想插入一个行为验证码之类的前置条件都不行,非得用户自己点击这个鬼按钮才能拉起。

    不能做到通过行为验证码之后回调直接唤起。

    01-10
    有用
    回复
  • Tim
    Tim
    2023-10-17

    其实腾讯这是在变相倒卖手机号码,这个号码他们之前都已经获取了的,现在搞这样的收费。。。如果新号搞收费可以理解啊,因为发个手机验证码都要费用吧。。但已经存在的号码都收费,还真的算是倒卖了。。。

    2023-10-17
    有用
    回复
  • 陈宇明
    陈宇明
    2023-07-05

    服务器记录用户是否验证过,验证过后不让其再次触发

    2023-07-05
    有用
    回复
  • Jianbo
    Jianbo
    2023-07-05

    1、必须微信小程序授权用户才可以去获取。

    2、服务端保存用户获取手机的次数,进行控制。

    2023-07-05
    有用
    回复 1
    • new world
      new world
      2023-07-05
      大致思路是这样的
      2023-07-05
      回复
  • 咚咚
    咚咚
    2023-07-05

    我是这样做的,用户第一次登录获取手机号,数据保存到后台数据库,下次再登录或者获取手机号的时候去数据库里查就行了

    2023-07-05
    有用
    回复 2
    • new world
      new world
      2023-07-05
      我之前也有这个想法。先调接口看这个用户信息里是否授权过手机号,有的话就调自己的业务接口,没有的话就调微信手机号授权。但要是用户想切换其他手机号登陆或输入框授权其他获取手机号的场景好像不是很适用。
      2023-07-05
      1
      回复
    • C
      C
      2023-08-16回复new world
      可以自己做个微信类似的手机号获取窗口啊,如果数据库里已有手机号,那就显示这个手机号以及一个新增手机号的选项,让用户可以选择这个手机号登录或者新增手机号,新增手机号的话,可以走阿里的短信接口或者也可以继续使用微信的获取手机号,再结合一下删除手机号的操作,这不就是一个全新的账号管理系统了,其实获取手机号不就是获取账号
      2023-08-16
      回复
  • sun
    sun
    发表于小程序端
    2023-07-04

    自己在bindtap绑定的方法里面写验证逻辑很难吗,又没有限制你bindtap绑定的方法怎么写

    2023-07-04
    有用
    回复 6
    • new world
      new world
      2023-07-05
      抱歉,我不是很理解你的意思...
      2023-07-05
      回复
    • sun
      sun
      发表于移动端
      2023-07-05回复new world
      直接在这个页面加载的时候写判断逻辑, page(){判断,通过,把申请手机号的按钮设置成启用;不通过,把获取手机号的按钮设置成disable,禁用},判断不通过的时候,按钮直接是禁用的,用户点不了,也不会存在扣费
      2023-07-05
      回复
    • new world
      new world
      2023-07-05
      对的,这样是可以的。有手机号授权按钮的页面在刚进入页面时调用后端接口判断当前用户今天已授权手机号的次数,如果超出最大次数则根据具体业务做不同处理。
      补充一点:在手机号授权成功的回调里也应该更新手机号授权按钮的状态,保证页面中数据是实时且准确的。
      2023-07-05
      回复
    • 罒夕艹青
      罒夕艹青
      2023-08-24回复new world
      你怎么判断当前用户信息啊,用户清空缓存,再进小程序,信息都没了,然后进登录页授权,不就绕过限制了么
      2023-08-24
      回复
    • new world
      new world
      2023-08-24
      以微信的openid为维度去记录授权手机号的次数,openid可以直接取到。在每次成功授权手机号时,后端是知道此openid今天授权了多少次的。再每次授权成功后,前端也需要知道此openid今天授权的次数从而更新页面状态值。和用户登录未登录无关的
      2023-08-24
      回复
    查看更多(1)
  • 晓飞
    晓飞
    2023-07-04

    关注

    2023-07-04
    有用
    回复
登录 后发表内容