目录
Java使用腾讯云短信服务
一、短信服务简介
首先我们要大致知道短信服务是干什么的:云服务提供商通过短信服务向手机号发送短信。我们可以在云服务提供商的平台上设置短信模板,但是一些具体的数据,例如验证码,是由我们自己的后端生成和实现的。
二、准备工作
-
在腾讯云开通短信服务
-
进入控制台-》
-
在国内短信-》签名管理中创建签名
-
在国内短信-》正文模板管理中创建模板
-
在套餐包管理-》国内套餐包中购买套餐
-
在应用管理-》应用列表中创建应用
二、Java操作
说明:这里演示一下使用Java如何调用腾讯云短信服务的基本实现方法
-
创建SpringBoot工程,引入依赖
<!-- 腾讯云短信服务--> <dependency> <groupId>com.github.qcloudsms</groupId> <artifactId>qcloudsms</artifactId> <version>1.0.6</version> </dependency> <!-- UUID工具类--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> <!-- redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
-
修改application.properties文件
# 应用服务 WEB 访问端口 server.port=8080 spring.redis.host= spring.redis.password= spring.redis.port=
-
为短信创建实体类
@Data public class Sms { /** * 手机号 */ String phoneNumber; }
-
创建我们的测试Controller类
public class SmsController { @Autowired RedisTemplate<String,String> redisTemplate; //验证码过期时间 private Integer expireTime=5; @RequestMapping(value="/send",method = RequestMethod.POST) public void sendSms(@RequestBody Sms sms){ //你的SDKAppID(在应用列表中查看) int appid = ; //你的App Key(在应用列表详情中查看) String appKey = ""; //你的短信模板id(在国内短信-》正文模板管理中查看) int templateId = ; //你的签名内容(在国内短信-》签名管理中查看) String smsSign = ""; //生成六位随机数,作为验证码 String randomCode = RandomStringUtils.randomNumeric(6); //打印验证码 System.out.println(randomCode); //将验证码存入redis,key为手机号,value为验证码 redisTemplate.opsForValue().set(sms.getPhoneNumber(),randomCode,expireTime, TimeUnit.MINUTES); //设置调用腾讯云短信服务的参数,注意这个参数和你在腾讯云控制台中定义的短信模板中的参数要一致 String[] params = {randomCode,Integer.toString(expireTime)}; SmsSingleSender smsSingleSender = new SmsSingleSender(appid,appKey); try { //发送验证码 SmsSingleSenderResult result = smsSingleSender.sendWithParam("86",sms.getPhoneNumber(),templateId,params,smsSign,"",""); System.out.println(result); } catch (HTTPException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } }
-
最后,我们测试接口
手机收到验证码:
查看控制台输出
查看redis中的验证码
由于验证码是五分钟过期,我这里的验证码已经过期了,就不展示了。
三、项目链接
Gitee:https://gitee.com/esan12138/JavaOperationOfTencentCloudSMSservice.git
GitHub:GitHub - Esan12138/JavaOperationOfTencentCloudSMSservice: 使用Java调用腾讯云短信服务,实现发送短信验证码以及将验证码存入redis中
好啦,到此位置所有功能都已经完成啦,如果喜欢本篇文章,记得点个赞和收藏哦