微信小程序02: 使用微信快速验证组件code获取手机号

全文目录,一步到位

  • 1.前言简介
    • 1.1 专栏传送门
      • 1.1.1 上文小总结
      • 1.1.2 上文传送门
  • 2. 微信小程序获取手机号
    • 2.1 业务场景(`使用`与`充值`)
    • 2.2 准备工作
    • 2.3 具体代码使用与注释如下
      • 2.3.1 代码解释(一)[无需复制]
      • 2.3.2 代码解释(二)[无需复制]
    • 2.4 最后一步 获取手机号信息
      • 2.4.1 两行代码搞定(`使用代码`)
      • 2.4.2 异常码信息(`常用`)
  • 3. 文章的总结与预告
    • 3.1 本文总结
    • 3.2 下文预告


1.前言简介

上文为核心文章, 请先复制上文的代码后再复制此篇代码
里面是对微信小程序大部分操作的总结与封装

1.1 专栏传送门

本篇专栏地址:
=> 传送门: 微信小程序相关操作专栏 <=

专栏中的一个文章说明(可跳过此说明)

  • 有一个旧的文章, 里面有个获取手机号的demo,
  • 基本直接复制那篇也可以使用(不推荐)
  • => 传送门:(旧版本)获取手机号(不推荐)

1.1.1 上文小总结

上文为核心文章, 请先复制上文的代码后再复制此篇代码
里面是对微信小程序大部分操作的总结与封装

1.1.2 上文传送门

[===> 微信小程序00: 获取accessToken,手机号, 小程序二维码,openId与unionId 公共配置类(核心篇) ]

2. 微信小程序获取手机号

微信小程序官方文档: => 传送门 <=
在这里插入图片描述

2.1 业务场景(使用充值)

微信小程序手机号快捷验证, 当然了 2023年8月26日起开始收费了(功能就是下图展示的)
当然 用其他普通短信认证 都行 反正价格都差不多, 不免费了!!!
在这里插入图片描述
=> 传送门: 微信小程序手机号快速验证-微信开放社区

2.2 准备工作

第一步: 请先复制核心篇微信小程序-00的统一封装类

=> 传送门: 微信小程序00: 微信小程序公共配置类(核心篇)

第二步: 请先复制上一篇 获取accessToken

=> 传送门: 微信小程序01: springboot获取accessToken方式

使用流程介绍

第一步: 是将微信小程序相关操作同一封装
第二步: 使用第一步封装代码并且获取accessToken
目的: 将获取到的accessToken用于本篇文章进行手机号快捷验证

2.3 具体代码使用与注释如下

2.2步骤说过 这里还是在强调一下

特别注意: 请先复制核心篇: ===> 微信小程序-00`的统一封装类
注意: 请先阅读上一篇: ===> 微信小程序01: springboot获取accessToken方式

2.3.1 代码解释(一)[无需复制]

找到WechatServiceUtils类 的 getPhoneByCode()方法
这个是通过微信code获取手机号信息

	/**
     * 获取手机号信息
     * @param code js_code
     * @return phone
     */
    public String getPhoneByCode(String code) {
        String phoneUrl = wechatConfigProperties.getPhoneUrl(getRedisCacheAccessToken());

        Map<String, Object> map = new HashMap<>();
        map.put("code", code);

        JSONObject jsonObject = sendPostRestTemplate(phoneUrl, map, JSONObject.class);
        System.out.println(jsonObject);

        if (jsonObject.containsKey("errcode")) {

            /*如果异常码是0 说明正常*/
            if (!Objects.equals(String.valueOf(jsonObject.get("errcode")), "0")) {
                log.error("===> 获取手机号的异常信息 : {}", jsonObject + "");

                throw new ServiceException("获取失败: " + jsonObject.get("errmsg"), (Integer) jsonObject.get("errcode"));
            }
        }

        JSONObject phoneInfo = jsonObject.getJSONObject("phone_info");

        return phoneInfo.getString("phoneNumber");
    }

2.3.2 代码解释(二)[无需复制]

自己封装一个发送post请求的模板(使用restTemplate, 使用其他方法随意)

    /**
     * 远程调用 restTemplate方法 post请求
     *
     * @param url
     * @param body
     * @return
     */
    public <T> T sendPostRestTemplate(String url, Map<String, Object> body, Class<T> responseType) {
        return restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(body, null), responseType).getBody();
    }

2.4 最后一步 获取手机号信息

2.4.1 两行代码搞定(使用代码)

注意: 可以建立实体类请求对象 配合@Validated对参数进行校验

  String code = (String) jsonObject.get("code");

  String phone = wechatServiceUtils.getPhoneByCode(code);

2.4.2 异常码信息(常用)

错误码错误描述解决方案
-1system error[系统繁忙,此时请开发者稍候再试]
40029code 无效[js_code无效]
45011api minute-quota reach limit mustslower retry[next minute API 调用太频繁,请稍候再试]
40013invalid appid[请求appid身份与获取code的小程序appid不匹配]

3. 文章的总结与预告

3.1 本文总结

  1. 使用微信手机号快捷验证组件获取手机号
  2. 找到充值位置与方式(核心呀...)
  3. 上面代码一复制就OK了, 注册的时候使用一次即可
  4. 其余可用openId/unionId进行判断

3.2 下文预告

  1. 获取openId与unionId
  2. 获取不限制小程序二维码
  3. 微信支付
  4. 微信提现


作者pingzhuyan 感谢观看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410636.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java设计模式 | 七大原则之依赖倒转原则

依赖倒转原则&#xff08;Dependence Inversion Principle&#xff09; 基本介绍 高层模块不应该依赖低层模块&#xff0c;二者都应该依赖其抽象&#xff08;接口/抽象类&#xff09;抽象不应该依赖细节&#xff0c;细节应该依赖抽象依赖倒转&#xff08;倒置&#xff09;的…

React基础-webpack+creact-react-app创建项目

学习视频&#xff1a;学习视频 2节&#xff1a;webpack工程化创建项目 2.1.webpack工程化工具&#xff1a;vite/rollup/turbopak; 实现组件的合并、压缩、打包等&#xff1b; 代码编译、兼容、校验等&#xff1b; 2.2.React工程化/组件开发 我们可以基于webpack自己去搭建…

React歌词滚动效果(跟随音乐播放时间滚动)

首先给audio绑定更新时间事件 const updateTime e > {console.log(e.target.currentTime)setCurrentTime(e.target.currentTime);};<audiosrc{currentSong.url}ref{audio}onCanPlay{ready}onEnded{end}onTimeUpdate{updateTime}></audio>当歌曲播放时间改变的时…

【力扣 - 有效的括号】

题目描述 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同…

免费享受企业级安全:雷池社区版WAF,高效专业的Web安全的方案

网站安全成为了每个企业及个人不可忽视的重要议题。 随着网络攻击手段日益狡猾和复杂&#xff0c;选择一个强大的安全防护平台变得尤为关键。 推荐的雷池社区版——一个为网站提供全面安全防护解决方案的平台&#xff0c;它不仅具备高效的安全防护能力&#xff0c;还让网站安…

Uniapp + VUE3.0 实现双向滑块视频裁剪效果

效果图 <template><view v-if"info" class"all"><video:src"info.videoUrl"class"video" id"video" :controls"true" object-fit"fill" :show-fullscreen-btn"false"play-btn…

linux服务器vi文件中文乱码

服务器vi编辑中文乱码 cat 文本是中文 可以编辑 vi /etc/environment 文件修改为utf8中文字符集 LANGzh_CN.UTF-8 LANGUAGEen_US:en LC_CTYPE"zh_CN.UTF-8" LC_NUMERIC"zh_CN.UTF-8" LC_TIME"zh_CN.UTF-8" LC_COLLATE"zh_CN.UTF-8"…

springboot219基于SpringBoot的网络海鲜市场系统的设计与实现

网络海鲜市场系统的设计与实现 摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&…

Python实现DAS单点登录

❇️ 流程 进入登录页面 &#xff08;DAS验证的登录页面&#xff09; 获取验证码图像&#xff0c;百度OCR识别 登录 &#x1f3de;️ 环境 Windows 11 Python 3.12 PyCharm 2023 &#x1f9f5; 准备工作 安装必要依赖库 bs4 Jupyter 推荐安装 Jupyter&#xff08;Anaco…

*ctf 2019 oob

diff文件如下 diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index b027d36..ef1002f 100644 --- a/src/bootstrapper.ccb/src/bootstrapper.cc-1668,6 1668,8 void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,Builtins::kArrayProto…

【重温设计模式】原型模式及其Java示例

【重温设计模式】原型模式及其Java示例 原型模式的介绍 在编程的世界里&#xff0c;有一种神秘而强大的法宝&#xff0c;它就是设计模式。设计模式&#xff0c;就像是一种编程的哲学&#xff0c;是对软件工程中的一些经典问题的通用解决方案。它能够帮助我们更好地组织代码&am…

又现股东大额减持,东鹏饮料业绩预喜也难“救市”?

“醒着拼”的东鹏饮料(605499.SH)&#xff0c;市值“累了困了”&#xff1f; 1月27日&#xff0c;东鹏饮料公布了2023年的业绩预告显示&#xff1a;预计将达到110.57亿元-113.12亿元&#xff0c;同比增长30%-33%&#xff1b;净利润预计在19.89亿元-20.61亿元之间&#xff0c;同…

汇编语言与接口技术实践——秒表

1. 设计要求 基于 51 开发板,利用键盘作为按键输入,将数码管作为显示输出,实现电子秒表。 功能要求: (1)计时精度达到百分之一秒; (2)能按键记录下5次时间并通过按键回看 (3)设置时间,实现倒计时,时间到,数码管闪烁 10 次,并激发蜂鸣器,可通过按键解除。 2. 设计思…

数学建模【GM(1, 1)灰色预测】

一、GM(1, 1)灰色预测简介 乍一看&#xff0c;这个名字好奇怪&#xff0c;其实是有含义的 G&#xff1a;Grey&#xff08;灰色&#xff09;M&#xff1a;Model&#xff08;模型&#xff09;(1, 1)&#xff1a;只含有一个变量的一阶微分方程模型 提到灰色&#xff0c;就得先说…

基于InSAR、CNN的滑坡监测(一)

文献阅读记录&#xff0c;也是组会汇报材料收集&#xff0c;从中文文献开始学习。 开发一种快速、精确且自动化程度较高的滑坡定位或检测模型可以为地质灾害防治提供有效支撑,为研究滑坡分布规律及滑坡潜在风险等问题提供技术支持 ①《基于高分辨率遥感影像和改进 U-Net 模型的…

【Spring Cloud】高并发带来的问题及常见容错方案

文章目录 高并发带来的问题编写代码修改配置压力测试修改配置&#xff0c;并启动软件添加线程组配置线程并发数添加Http取样配置取样&#xff0c;并启动测试访问message方法观察效果 服务雪崩效应常见容错方案常见的容错思路常见的容错组件 总结 欢迎来到阿Q社区 https://bbs.c…

YOLOv5改进 | SPPF篇 | 利用YOLOv9最新的SPPELAN模块改进SPPF(全网独家创新,附手撕结构图)

一、本文介绍 本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的SPPELAN模块来改进SPPF,其中YOLOv9针对于这个模块并没有介绍,只是在其项目文件中用到了,我将其整理出来用于我们的YOLOv5的项目,同时空间金字塔池化作为我们YOLOv5中的一个比较独特的存…

算法学习(十三)多路归并

多路归并 1. 概念 一、多路归并算法的由来 假定现在有一包含大量整数的文本文件存放于磁盘中&#xff0c;其文件大小为10GB&#xff0c;而本机内存只有4GB。此时若我们要对该文件中的所有整数进行升序排序&#xff0c;肯定不能直接将文件中的所有数据一次性读入内存中&#x…

《Docker 简易速速上手小册》第7章 高级容器管理(2024 最新版)

文章目录 7.1 容器监控与日志7.1.1 重点基础知识7.1.2 重点案例&#xff1a;监控 Flask 应用7.1.3 拓展案例 1&#xff1a;使用 ELK Stack 收集和分析日志7.1.4 拓展案例 2&#xff1a;使用集成监控工具 7.2 性能调优与资源限制7.2.1 重点基础知识7.2.2 重点案例&#xff1a;Fl…

边缘计算网关与边缘计算的融合之道-天拓四方

随着物联网、大数据和人工智能的飞速发展&#xff0c;数据处理和分析的需求呈现出爆炸式增长。传统的中心化数据处理模式已难以满足实时性、低延迟和高带宽的需求&#xff0c;边缘计算应运而生&#xff0c;成为解决这一难题的关键技术。而边缘计算网关&#xff0c;作为连接边缘…