小工具知识网

当前位置: 首页 > 行业知识 > 小程序获取手机号:快速验证和实时验证

行业知识

小程序获取手机号:快速验证和实时验证

2026-11-06 01:27:09 来源:互联网转载

概述

小程序手机号快速验证和实时验证都已经开始收费了。

  • 手机号实时验证组件,在每次请求时,平台均会对用户选择的手机号进行实时验证;每次组件调用成功,收费0.04元
  • 手机号快速验证组件,平台会对号码进行验证,但不保证是实时验证。每次组件调用成功,收费0.03元
  • 两者的区别简单理解就是实时验证能确保手机号是可用的(比如微信会要求使用者输入验证码确保手机号可用性),而快速验证就是把微信绑定的手机号返回去,不管有没有注销或者欠费

    基础库选择

    快速验证组件其实就是最开始的获取手机号码组件,调用流程比较复杂,需要wx.login,然后再使用encryptedData和iv得到手机号。新版本的也还能继续使用这种,但同时也增加了一个code(基础库从2.21.2开始),可以直接用code而忽略encryptedData和iv。

    所以,建议基础库直接选择2.21.2或者以上的,这样实时和快速的两种能统一处理掉。

    基础库版本修改位置: 开发者工具右上角的详情->本地设置->修改调试基础库

    后端代码

    后端代码非常简单,根据code来得到手机号,进行自己业务的逻辑,为了方便查看,我把响应值直接返回给小程序了,真实业务自行调整成保存数据库或者其他逻辑。

    获取access_token,这个是小程序的,appid和secert可通过小程序后台获取到。access_token的有效期是2小时,可以做成个定时任务。

        public void runmicro(){        log.info("进入获取micro accessToken 定时任务");        try {            String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&app&secret=" + Cons.SECRET_MICRO;            String result = Jsoup.connect(url).ignoreContentType(true).method(Connection.Method.GET).execute().body();            log.info(result);            Cons.accessTokenMicro = JSON.parseObject(result).getString("access_token");        } catch(Exception e) {            e.printStackTrace();        }    }

    有了access_token,就可以正常获取手机号码了。

    其中,requestBody中参数格式必须是code:codeValue,我直接限制小程序按照这个格式传递了,没有做合法校验。

        @PostMapping("/mobile")    @Log("查询手机号码")    @ApiOperation("查询手机号码")    @AnonymousAccess    public ResponseEntity mobile(@RequestBody JSONObject param){        try {            System.out.println(param.toString());            String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + Cons.accessTokenMicro;            String result = Jsoup.connect(url).method(Connection.Method.POST).ignoreContentType(true).ignoreHttpErrors(true).requestBody(param.toString()).execute().body();            return new ResponseEntity(JSON.parseObject(result),HttpStatus.OK);        } catch(Exception e) {            e.printStackTrace();        }        return new ResponseEntity(HttpStatus.OK);    }

    小程序布局

    使用了weui样式。这个无所谓,根据个人喜好了。

    在wxss中进行引入

    @import "/pages/style/weui.wxss";

    在wxml中写两个按钮,测试两个获取手机号。其中实时组件的open-type是getRealtimePhoneNumber,同时通过bindgetrealtimephonenumber来指定获取到以后调用的方法;快速组件的open-type是getPhoneNumber,同时通过bindgetphonenumber来指定获取到以后调用的方法。

上一篇:宝塔面板防CC攻击配置详解

下一篇:揭秘ASP源码,轻松掌握ASP程序源代码的查看与解读技巧