全文目录,一步到位
- 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 异常码信息(常用
)
错误码 | 错误描述 | 解决方案 |
---|---|---|
-1 | system error | [系统繁忙,此时请开发者稍候再试] |
40029 | code 无效 | [js_code无效] |
45011 | api minute-quota reach limit mustslower retry | [next minute API 调用太频繁,请稍候再试] |
40013 | invalid appid | [请求appid身份与获取code的小程序appid不匹配] |
3. 文章的总结与预告
3.1 本文总结
- 使用微信手机号快捷验证组件获取手机号
- 找到
充值位置与方式(核心呀...)
- 上面代码一复制就OK了, 注册的时候
使用一次即可
- 其余可用
openId/unionId
进行判断
3.2 下文预告
- 获取openId与unionId
- 获取不限制小程序二维码
- 微信支付
- 微信提现
作者pingzhuyan 感谢观看