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

这篇具有很好参考价值的文章主要介绍了小程序获取手机号:快速验证和实时验证。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

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

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

基础库选择

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

所以,建议基础库直接选择2.21.2或者以上的,这样实时和快速的两种能统一处理掉。
基础库版本修改位置: 开发者工具右上角的详情->本地设置->修改调试基础库
微信小程序 手机号实时验证 手机号快速验证,2024 公众号小程序,小程序,手机号,实时组件,快速组件

后端代码

后端代码非常简单,根据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&appid=" + Cons.APPID_MICRO + "&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<JSONObject> 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来指定获取到以后调用的方法。

<page-meta root-font-size="system"/>
<view class="page" data-weui-theme="{{theme}}" data-weui-mode="{{mode}}">
    <view class="page__bd">
        <view class="weui-cells__title">手机号实时验证组件</view>
        <view class="weui-cells weui-cells_after-title">
            <view aria-labelledby="js_cell_l1_bd" class="weui-cell weui-cell_access" hover-class="weui-cell_active">
                  <button type="primary" style="width: 100%;" open-type="getRealtimePhoneNumber" bindgetrealtimephonenumber="getrealtimephonenumber" >获取手机号(实时)</button>
                </view>
        </view>

        <view class="weui-cells__title">手机号快速验证组件</view>
        <view class="weui-cells weui-cells_after-title">
            <view aria-labelledby="js_cell_l1_bd" class="weui-cell weui-cell_access" hover-class="weui-cell_active">
                  <button type="primary" style="width: 100%;" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber" >获取手机号(快速)</button>
                </view>
        </view>
        
        <view class="weui-cells__title" style="padding-top: 30px;">手机号实时验证组件,在每次请求时,平台均会对用户选择的手机号进行实时验证。每次组件调用成功,收费0.03元。
        </view>
        <view class="weui-cells__title" >手机号快速验证组件,平台会对号码进行验证,但不保证是实时验证。每次组件调用成功,收费0.04元。</view>

    </view>

</view>

微信小程序 手机号实时验证 手机号快速验证,2024 公众号小程序,小程序,手机号,实时组件,快速组件

小程序公共调用方法

因为两种获取手机号的方式都是统一的通过code,所以在js中写个公共的方法,都可以直接调用。url是上面后台部署好的地址。

mobileRequest: function(code) {
      wx.request({
        url: 'https://eladmin.luotayixing.com/api/wechat/mobile',
        method: 'POST',
        data: {
          code: code
        },
        header: {
          'content-type': 'application/json'
        },
        success (res) {
          wx.showModal({
            title: '返回结果',
            content: JSON.stringify(res.data),
            showCancel: false,
            success (res) {
              
            }
          })
        }
      })
    },

组件事件回调

上面两个组件的事件回调方法比较简单,都是直接把code拿到。
这里需要增加下判断,比如用户点击了取消不要调用,其他出错情况不要调用等。我为了方便偷懒了。

    getrealtimephonenumber (e) {
      this.mobileRequest(e.detail.code)
    },
    getPhoneNumber (e) {
      this.mobileRequest(e.detail.code)
    },

官方给出的几个参数可以用,比如errno来判断是否失败了。

    console.log(e.detail.code)  // 动态令牌
    console.log(e.detail.errMsg) // 回调信息(成功失败都会返回)
    console.log(e.detail.errno)  // 错误码(失败时返回)

完整代码获取

可以通过公众号“洛塔志达服务”进行联系,发送“微信”,可添加好友沟通。文章来源地址https://www.toymoban.com/news/detail-836565.html

到了这里,关于小程序获取手机号:快速验证和实时验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 微信小程序手机号快速验证组件调用方式

    微信小程序手机号快速验证组件调用方式

    目录 一、测试环境 二、问题现象 三、总结 手机号验证组件(包括快速验证组件和实时验证组件)调用后无法对事件进行回调这个问题,先说结论,以下是正确的使用方式: 一、测试环境 windows10 微信开发者工具(1.06.2307260win32-x64) 基础库(3.0.1[1028]) iPhone XR(IOS 15.2.1) 微信(

    2024年02月10日
    浏览(10)
  • 微信小程序 快速获取手机号 getphonenumber fail privacy permission is not authorized, errno: 104

    getphonenumber fail privacy permission is not authorized, errno: 104 小程序体验版 快速获取手机号注册 发现这个报错: getphonenumber fail privacy permission is not authorized, errno: 104 手头2个微信号可以测试 1个微信号可以正常,另1个微信号失败 常见说法:微信小程序号没有认知 (实际我们的小程序已

    2024年02月09日
    浏览(13)
  • 微信小程序:登录授权,根据手机号获取凭证,获取用户手机号

    1.微信小程序授权 controller 层代码 wxUtils 工具类 2.微信小程序,用户手机号获取 微信小程序,根据code(code为手机号获取凭证)获取用户加密手机号 获取用户手机号方法

    2024年02月14日
    浏览(16)
  • 微信小程序手机号验证开发遇到问题

    微信小程序手机号验证开发遇到问题

    公司小程序项目中快速登录需要实现微信用户授权手机登录、注册功能。结果遇到了 invalid code hint: [zHkDmt0sf-MBjga] rid: 64e3259f-1091b953-7e10f1da 目录 服务端文档 文档描述 返回信息 服务端代码 遇到问题 排查问题 1.服务端用错了appid serect 2.小程序端用错了appid serect 3.服务端用错了

    2024年02月11日
    浏览(8)
  • 微信小程序获取手机号

    微信小程序获取手机号

    1、先新建vue页面  打开看到页面是下图 在method定义方法    源码: node.js文件下载解压后启动node app.js打开服务器即可 点击下载

    2024年02月02日
    浏览(15)
  • 微信小程序 - 实现手机号登录--授权并获取手机号保存至本地

    微信小程序 - 实现手机号登录--授权并获取手机号保存至本地

    微信官方文档 | 获取手机号 这是服务端的  这是我们前端获取手机号需要给接口传递的两个参数    注意: 参数一: 获取access_token需要用到小程序密钥,这个需要从 服务端获取 ,也就是需要请求后端接口获取access_token,千万不要将小程序密钥写在前端代码中, 必须 要从服

    2024年02月03日
    浏览(24)
  • 企业微信小程序获取手机号?

    企业微信小程序获取手机号?

    一、确定小程序是开发企业内部应用,还是开发第三方应用。  如果是开发企业内部应用,也就是应用自建的可以使用   wx.qy.getMobile 这个api 去获取手机号 wx.qy.getMobile 调用前提: 1、必须先调用过wx.qy.login,且session_key未过期,开发者可调用checkSession 检查当前登录态( 需要

    2024年02月07日
    浏览(11)
  • 微信小程序:获取用户手机号(前端)

    获取手机号的开发过程可以分为三部分:微信前端设置,微信js文件编写,服务器端程序开发. 其中微信前端最为简单,在获取手机号的过程中我们必须经过用户授权,在wxml文件中加入如下代码: 然后我们需要编写js文件,当用户允许获取手机号后调用相关逻辑,将手机号加密信息发

    2024年02月06日
    浏览(10)
  • 新版微信小程序获取用户手机号

    小程序手机号验证组件有两种 手机号快速验证组件 手机号实时验证组件

    2024年02月11日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包