Java整合Redis实现腾讯云短信服务(轻松入门,超详细)

目录

Java使用腾讯云短信服务

一、短信服务简介

二、准备工作

二、Java操作

三、项目链接


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中

好啦,到此位置所有功能都已经完成啦,如果喜欢本篇文章,记得点个赞和收藏哦

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值