基于SpringBoot+腾讯云短信服务实现接收手机验证码功能
- 在腾讯云中配置需要的服务
- 申请签名和短信模板
- 创建应用
- 在项目application.yml中配置相关参数
- 在项目中安装腾讯云短信服务的依赖包
<!--腾讯云--><dependency><groupId>com.github.qcloudsms</groupId><artifactId>qcloudsms</artifactId><version>1.0.6</version></dependency>
- 创建SmsConstantUtil工具类来获取配置文件中的参数
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component;/* *腾讯云短信服务 */ @Component @PropertySource("classpath:application.yml") public class SmsConstantUtil implements InitializingBean {@Value("${tencent.appid}")private Integer APPID;@Value("${tencent.appkey}")private String APPKEY;@Value("${tencent.templateId}")private Integer TEMPLATEID;@Value("${tencent.signname}")private String SIGNNAME;public static Integer APP_ID;public static String APP_KEY;public static Integer TEMPLATE_ID;public static String SIGN_NAME;@Overridepublic void afterPropertiesSet() throws Exception {APP_ID = APPID;APP_KEY = APPKEY;TEMPLATE_ID = TEMPLATEID;SIGN_NAME = SIGNNAME;} }
- 创建service和实现类来实现相应功能
ps:这里对所需要的参数进行了封装@Data @Component public class SmsCodeVo {private String phone;private String code; }
SmsService:
public interface SmsService {Result sendCode(SmsCodeVo smsCodeVo); }
SmsServiceImpl:
@Service public class SmsServiceImpl implements SmsService {@AutowiredSmsCodeVo smsCodeVo;@AutowiredRedisTemplate<String, String> redisTemplate;@Overridepublic Result sendCode(SmsCodeVo smsCodeVo) { // 获取配置信息Integer appId = SmsConstantUtil.APP_ID;String appKey = SmsConstantUtil.APP_KEY;Integer templateId = SmsConstantUtil.TEMPLATE_ID;String signName = SmsConstantUtil.SIGN_NAME;if (StringUtils.isBlank(smsCodeVo.getPhone())){return Result.error(ErrorCode.PARAMS_NULL.getCode(),ErrorCode.PARAMS_NULL.getMsg());} // 获取手机号String phone = smsCodeVo.getPhone(); // 生成验证码String verifyCode = vcode();smsCodeVo.setCode(verifyCode); // 存入redisredisTemplate.opsForValue().set(phone,verifyCode.replaceAll("[[\\s-:punct:]]", ""), 300, TimeUnit.SECONDS);try{String[] params = {smsCodeVo.getCode()}; //短信中的参数SmsSingleSender ssender = new SmsSingleSender(appId, appKey);SmsSingleSenderResult result = ssender.sendWithParam("86", smsCodeVo.getPhone(), templateId,params, signName, "", ""); // 打印返回结果System.out.println(result);if (result.result == 0){return Result.success(200,"发送成功");}if (result.result == 1025){return Result.error(1025,"验证码已经发上限制!!!,请稍后再试");}} catch (HTTPException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return Result.error(400,"发送失败");}/*** 生成6位随机短信验证码*/public static String vcode(){String vcode = "";for (int i = 0;i <6;i++){vcode = vcode + (int) (Math.random()*9);}return vcode;}}
- 在控制器controller中实现调用功能
@RestController @Controller @Api(tags = "短信模块") @CrossOrigin public class SmsController {@AutowiredSmsService smsService;@PostMapping("/sendCode")@ApiOperation(value = "发送短信验证码")public Result sendCode(@RequestBody SmsCodeVo smsCodeVo){return smsService.sendCode(smsCodeVo);}}
- 启动项目,测试功能
- 手机接收如下:
基于SpringBoot+腾讯云短信服务实现接收手机验证码功能相关推荐
- 使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题
使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题 参考文章: (1)使用springboot集成腾讯云短信服务,解决配置文件读取乱码问题 (2)https://www.cnblog ...
- 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
文章目录 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现) 1.打开腾讯云短信服务 2.创建短信签名 3.创建短信正文模板 4.等待全部审核完毕即可 5.发送短信 ...
- SpringBoot工程接入腾讯云短信服务平台
由于业务需要,需要使用第三方短信平台,进行验证码的发送.网上的短信服务平台主要由:百度.腾讯.阿里云:采用官方提供的SDK,调用接口即可. 腾讯云短信服务平台和阿里云短信服务平台,一般步骤为:注册-- ...
- 基于Spring使用腾讯云短信服务
基于Spring使用腾讯云短信服务 没有特殊要求的话按照官网的SDK,导入依赖,使用SDK里的代码删除自己不要的就可以了. https://cloud.tencent.com/document/pro ...
- Springboot+Redis接入腾讯云短信服务实现验证码发送
目录 一.开通腾讯云短信服务 二.代码实现 三.测试 申请阿里云短信服务需要以上线APP或已备案网站,腾讯云短信服务可以使用微信公众号申请,注册个人微信公众号比较方便,改用腾讯云短信服务,参考官方SD ...
- 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)
2021/8/17/23:01{2021/8/17/23:01}2021/8/17/23:01 文章目录 前言 一.如何成功申请到腾讯云短信服务 1.签名申请 2.正文模板申请 二.发送短信API开发 ...
- SpringBoot整合阿里云短信服务详细过程(保证初学者也能实现)
前言 网上关于实操性的文章普遍大部分都记录不全,要么只记录重点部分,对于刚学习的小伙伴来说看起来是比较困难的 所以,基于这一点. 该文章会详细介绍使用SpringBoot整合阿里云短信服务的每一步过程 ...
- SpringBoot腾讯云短信实现验证码
SpringBoot腾讯云短信实现验证码 在学习过程中偶然遇见需要实现验证码功能的需求,于是寻思着将功能抽取出来用于分享学习 业务功能:实现验证码60s,且要求防止用户高频刷验证码(即1min一次不多 ...
- 腾讯云短信服务发送验证码
腾讯云短信服务发送验证码 1.前言 2.进入短信服务控制台 3.创建签名 4.创建模板 5.短信-应用管理-应用列表 6.创建密钥 7.SpringBoot实现短信验证码发送 7.1 引入依赖 7.2 ...
最新文章
- 对标Bert?刷屏的GPT 2.0意味着什么
- List中remove()方法的陷阱,被坑惨了!
- Enterprise Architect
- boost::container实现显式实例map的测试程序
- 实现生成小学四则运算练习题
- React开发(215):React中的Fragments的动机
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 26丨广告效果【难度简单】​
- 快讯:2018 OOW Oracle技术大会PPT抢鲜下载
- 从操作系统内核看设计模式--linux内核的facade模式
- Oracle误操作--被提交后的数据回退(闪回)
- php怎么代表不同行,php – 单击按钮时显示数据库的不同行
- 比大小 log_2^3 与 log_3^5
- jquery常用遍历方法
- 销量之王,去年程序员最爱看的技术书就是它
- ListView与Adapter笔记:ZrcListView
- docker(4):coreos+docker+rancher真厉害
- 计算机上未检测到u盾,u盾检测不到-电脑上检测不到我的U盾怎么办? 爱问知识人...
- 前端三大主流框架如何去选择?
- 基于python的第三方库Pyautogui实现程序自动控制鼠标与键盘
- vue中.lazy 相当于change事件
热门文章
- 劳动力管理 v4.4.0
- 【软考】电子商务的分类 - 中级电子商务设计师考点分析
- html语言入门百度,【初学Html】百度的界面Html
- 4米乘以12米CAD图_教你如何绘制好施工现场总平面布置图
- VS 无签名UTF-8和带签名UTF-8格式
- 【知识图谱论文】使用强化学习对时间知识图中的路径进行多跳推理
- vue中使用js进行AES加密及解密(含密钥和iv偏移量)、以及HMAC-SHA256加密方法对于签名加密的使用
- 【VMWare】xp 虚拟机安装用友U872
- 服务器和网站备案号,什么是云服务器备案号
- 名词解释第七十八讲:加仓