Spring Boot中使用腾讯云短信服务

腾讯云短信服务的开通流程 从控制台进入短信模块,点击【开始接入】开通服务: 阅读详情

第一步:在腾讯云官方网站开通短信服务
第二部:开通后,在短信控制面板中找到国内短信
第三步:点击签名管理并创建签名
第五步:点击正文模板管理并创建正文模板
第六步:在pom文件中添加腾讯云短信依赖

<dependency>
    <groupId>com.tencentcloudapi</groupId>
    <artifactId>tencentcloud-sdk-java-sms</artifactId>
    <version>3.1.407</version><!-- 注:这里只是示例版本号(可直接使用),可获取并替换为 最新的版本号,注意不要使用4.0.x版本(非最新版本) -->
</dependency>

第七步:在application.properties或者application.yml配置文件中添加腾讯云账户密钥对 secretId 和 secretKey等相关信息

tencentcloud.sms.secretId=自己的secretId
tencentcloud.sms.secretKey=自己的secretKey
# 短信应用appId和appKey
tencentcloud.sms.appId=自己的appId
tencentcloud.sms.appkey=自己的appkey
# 签名
tencentcloud.sms.smsSign=自己的签名
# 模板id
tencentcloud.sms.templateId=自己的模板id
# 过期时间单位分钟
tencentcloud.sms.expireTime=5

第八步:创建短信发送需要的参数常量类smsConfig,不创建话可以直接写在SendSmsUtil类中

public class SmsConfig {
    @Value("${tencentcloud.sms.secretId}")
    private String secretId;
    @Value("${tencentcloud.sms.secretKey}")
    private String secretKey;
    @Value("${tencentcloud.sms.appId}")
    private String appId;
    @Value("${tencentcloud.sms.appkey}")
    private String appkey;
    @Value("${tencentcloud.sms.smsSign}")
    private String smsSign;
    @Value("${tencentcloud.sms.templateId}")
    private String templateId;
    @Value("${tencentcloud.sms.expireTime}")
    private Integer expireTime;

第九步:创建验证码生成工具类RandomUtil

public class RandomUtil {

    private static final Random random = new Random();

    private static final DecimalFormat fourdf = new DecimalFormat("0000");

    private static final DecimalFormat sixdf = new DecimalFormat("000000");

    public static String getFourBitRandom() {
        return fourdf.format(random.nextInt(10000));
    }

    public static String getSixBitRandom() {
        return sixdf.format(random.nextInt(1000000));
    }

    /**
     * 给定数组,抽取n个数据
     * @param list
     * @param n
     * @return
     */
    public static ArrayList getRandom(List list, int n) {

        Random random = new Random();

        HashMap<Object, Object> hashMap = new HashMap<Object, Object>();

        // 生成随机数字并存入HashMap
        for (int i = 0; i < list.size(); i++) {

            int number = random.nextInt(100) + 1;

            hashMap.put(number, i);
        }

        // 从HashMap导入数组
        Object[] robjs = hashMap.values().toArray();

        ArrayList r = new ArrayList();

        // 遍历数组并打印数据
        for (int i = 0; i < n; i++) {
            r.add(list.get((int) robjs[i]));
            System.out.print(list.get((int) robjs[i]) + "\t");
        }
        System.out.print("\n");
        return r;
    }
}

第十步:创建短信发送工具类SendSmsUtil

public class SendSmsUtil {
    @Autowired
    private SmsConfig smsConfig;
    public void sendSms(String phone, String code) {
        try {
            /* 必要步骤:
             * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
             * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
             * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
             * 以免泄露密钥对危及你的财产安全。
             * CAM密匙查询: https://console.cloud.tencent.com/cam/capi*/
            Credential cred = new Credential(smsConfig.getSecretId(), smsConfig.getSecretKey());

            // 实例化一个http选项,可选,没有特殊需求可以跳过
            HttpProfile httpProfile = new HttpProfile();
            // 设置代理
            // httpProfile.setProxyHost("真实代理ip");
            // httpProfile.setProxyPort(真实代理端口);
            /* SDK默认使用POST方法。
             * 如果你一定要使用GET方法,可以在这里设置。GET方法无法处理一些较大的请求 */
            httpProfile.setReqMethod("POST");
            /* SDK有默认的超时时间,非必要请不要进行调整
             * 如有需要请在代码中查阅以获取最新的默认值 smsConfig.getExpireTime() */
            httpProfile.setConnTimeout(smsConfig.getExpireTime());
            /* SDK会自动指定域名。通常是不需要特地指定域名的,但是如果你访问的是金融区的服务
             * 则必须手动指定域名,例如sms的上海金融区域名: sms.ap-shanghai-fsi.tencentcloudapi.com */
            httpProfile.setEndpoint("sms.tencentcloudapi.com");

            /* 非必要步骤:
             * 实例化一个客户端配置对象,可以指定超时时间等配置 */
            ClientProfile clientProfile = new ClientProfile();
            /* SDK默认用TC3-HMAC-SHA256进行签名
             * 非必要请不要修改这个字段 */
            clientProfile.setSignMethod("HmacSHA256");
            clientProfile.setHttpProfile(httpProfile);
            /* 实例化要请求产品(以sms为例)的client对象
             * 第二个参数是地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 */
            SmsClient client = new SmsClient(cred, "ap-guangzhou",clientProfile);
            /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
             * 你可以直接查询SDK源码确定接口有哪些属性可以设置
             * 属性可能是基本类型,也可能引用了另一个数据结构
             * 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 */
            SendSmsRequest req = new SendSmsRequest();

            /* 填充请求参数,这里request对象的成员变量即对应接口的入参
             * 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
             * 基本类型的设置:
             * 帮助链接:
             * 短信控制台: https://console.cloud.tencent.com/smsv2
             * sms helper: https://cloud.tencent.com/document/product/382/3773 */

            /* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 */
            /*String sdkAppId = "1400009099";*/
            req.setSmsSdkAppId(smsConfig.getAppId());

            /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
            /*String signName = "签名内容";*/
            req.setSignName("龙茶清欢");
            /* 国际/港澳台短信 SenderId: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
            String senderid = "";
            req.setSenderId(senderid);

            /* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
            String sessionContext = "xxx";
            req.setSessionContext(sessionContext);

            /* 短信号码扩展号: 默认未开通,如需开通请联系 [sms helper] */
            String extendCode = "";
            req.setExtendCode(extendCode);

            /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
            /*String templateId = "400000";*/
            req.setTemplateId(smsConfig.getTemplateId());

            /* 下发手机号码,采用 E.164 标准,+[国家或地区码][手机号]
             * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号 */
            /*String[] phoneNumberSet = {"+8621212313123", "+8612345678902", "+8612345678903"};*/
            String[] phoneNumberSet = {"+86"+phone};
            req.setPhoneNumberSet(phoneNumberSet);

            /* 模板参数: 若无模板参数,则设置为空 */
            /*此处的参数必须与申请的的模板参数一一对应,不然报错*/
            String[] templateParamSet = {code,(smsConfig.getExpireTime().toString())};
            req.setTemplateParamSet(templateParamSet);

            /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的
             * 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */
            SendSmsResponse res = client.SendSms(req);

            // 输出json格式的字符串回包
            System.out.println(SendSmsResponse.toJsonString(res));

            // 也可以取出单个值,你可以通过官网接口文档或跳转到response对象的定义处查看返回字段的定义
            System.out.println(res.getRequestId());

        } catch (TencentCloudSDKException e) {
            e.printStackTrace();
        }
    }

}

第十一步:调用SendSmsUtil类中的sendSms方法并传入手机号、验证码

Spring Boot+ SMS4J 搞定多厂商短信,配置即能用 sms4j 是一款优秀的短信聚合框架,就像是一个智能的短信服务中枢。它的核心优势在于能够融合多种短信厂商的服务 ,将不同厂商复杂的接口和配置进行统一封装,为开发者提供一个简洁、通用的短信发送接口。这意味着开发者不再需要为每个短信厂商单独编写复杂的接入代码,只需要关注业务逻辑,大大降低了开发成本,提升了开发效率。 阅读详情

相关推荐

Spring Boot实现短信服务完全指南

短信服务(SMS,Short Message Service)是一种允许应用程序通过API发送短信的云服务。身份验证:发送验证码进行身份验证通知提醒:订单状态、物流更新、服务提醒等营销活动:促销信息、优惠券发放系统告警:系统异常、关键指标监控等多服务商自动切换当某个服务商发送失败率过高时,自动切换到备用服务商实现负载均衡,根据成功率自动分配流量短信模板管理开发模板管理界面,方便添加和修改短信模板支持模板参数验证短信发送分析开发短信发送分析界面,展示发送数据和趋势。

yk_dflkg的博客 1590

Springboot整合腾讯云短信服务

Springboot整合腾讯云短信发送

A54324的博客 1329

Java短信服务整合:腾讯云与阿里云的简单实现

Spring Boot是基于Spring的一个开源框架,旨在简化Spring应用的初始搭建以及开发过程。它利用Spring框架已有特性,通过提供各种默认配置来简化项目配置,让开发者能够专注于业务逻辑的开发。腾讯云短信服务提供了一个稳定、可靠的通信平台,支持海量用户的短信发送需求。它具备如下特点:高到达率:腾讯云短信服务依托于腾讯的强大基础设施,保证了短信的高到达率。多场景支持:该服务支持验证码、通知、营销等多种场景,满足不同业务需求。灵活的配置。

weixin_28999139的博客 1247

使用腾讯云发送短信 ---- 手把手教你搞定所有步骤

最近在跟着一位大佬搞他的Austin项目,austin项目:发送消息。这里作者使用了腾讯云发送短信,因为注册就送 100条免费短信的额度。发短信的功能就不用花钱了。这里就记录了使用腾讯云的整个过程。......

weixin_42222436的博客 1万+

STM32F103串口接收中断:USART_IT_IDLE和USART_IT_RXNE区别

2:如果是大于1个byte的数据,在不用DMA的情况下,同时使能USART_IT_RXNE,USART_IT_IDLE中断,每收到一个字节在中断中把数据存到缓存中,待收到USART_IT_IDLE中断时,收完整帧数据,然后再解析处理数据。比如:如上图在初始化时,同时开启了两个中断,如果传送8个字节的数据,就会产生8个USART_IT_RXNE,和1个USART_IT_IDLE中断。(如果接收到数据,在1个byte的时间内,没有收到新数据,就认为是数据传送完成,产生空闲USART_IT_IDLE中断)

weixin_66299220的博客 2398

高德地图+Three.js实战:手把手教你打造数字农场3D可视化大屏(附完整源码)

本文详细介绍了如何利用高德地图JS API与Three.js技术栈,构建一个功能强大的数字农场3D可视化大屏。文章从技术选型、架构设计出发,深入讲解了坐标对齐、图层管理、性能优化等核心工程实践,并提供了完整的模块化代码示例,旨在为智慧农业及类似场景的3D地理可视化项目提供一套可复用的解决方案。

k8s6orchestrator的博客 889

实现在SpringBoot项目中使用腾讯云发送短信

在一些项目中总会不可避免的要用到短信服务,比如发送验证码等,那么如何进行短信的发送呢,我们这就来捋一捋,我这里采用的是腾讯云的短信服务。其他的云服务也大致一样。第一步、申请腾讯云的短信服务并配置基本信息首先进入腾讯云的短信服务界面传送门如上图所示,我们会看到要我们申请开通短信服务,开通后它会免费送我们100条国内短信。接下来我们就要进行相关的配置,首先进行创建签名,按照要求填写就行。这步之后创建短信正文的模板创建正文模板我们可以选择使用标准模板。

onlywishes的博客 2766

【WLAN】【调试】再谈如何使用Wireshark解密WiFi数据包——使用TK信息

- 本文介绍了一种wireshark使用TK信息解密空口报文的方式,该方式对是否有关联过程的报文没有要求。

一介草民,只为生活。 1187

SpringBoot使用腾讯云实现短信功能

引入依赖 <!-- 阿里云依赖 --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.6.3</version> </dependency> <dependency> <groupId>com.

道友,山高路远,如果找不到答案就去找自己。 819

基于Python的MOOC课程评价爬取与分析系统设计与实现

本文详细介绍了如何使用Python最新技术栈构建一个高效的MOOC课程评价爬取与分析系统。系统采用Scrapy框架结合Selenium实现动态页面抓取,利用PyMySQL进行数据存储,并通过Pandas和Matplotlib实现数据可视化分析。文章从爬虫原理、技术选型、系统设计到代码实现进行全面讲解,为教育工作者改进教学质量提供数据支持。关键词:Python爬虫、MOOC评价分析、Scrapy框架、数据可视化、教学改进。

2201_76125261的博客 1103

基于深度学习的道路裂缝检测系统完整教程

本文介绍了一种基于深度学习的道路裂缝检测系统完整解决方案。项目采用5466张高质量道路裂缝图像数据集,包含YOLO和Pascal VOC两种标注格式,覆盖多种道路场景。系统利用CNN和YOLO算法实现高效检测,相比传统人工巡检显著提升效率和准确性。文中详细阐述了数据集结构、环境配置和训练流程,包括数据预处理、智能分割策略和质量检查方法。该技术可及时发现道路裂缝隐患,降低维护成本,保障交通安全,为道路养护提供智能化解决方案。

FJN110的博客 296

使用腾讯云实现发送短信验证码登录的后端实现

搭建后端服务的登录模块, 其中的验证码登录使用腾讯云的短信服务

m0_56490442的博客 2728

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(五)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1510

使用腾讯云短信服务实现Spring Boot短信发送

如何通过腾讯云短信服务发送短信。具体步骤包括注册微信公众号和腾讯云账号、创建短信签名和模板,以及使用Spring Boot和腾讯云短信服务SDK实现短信发送。我们还提供了代码示例和工具类,方便在实践中得到应用

个人笔记总结 1506

基于深度学习的垃圾邮件识别

垃圾邮件的大量存在严重威胁着电子邮件系统的安全和效率。基于深度学习的垃圾邮件识别技术已经成为目前最有效的解决方案之一。本文将详细介绍使用深度学习技术进行垃圾邮件识别的方法,并提供相应的代码实现。 随着电子邮件的广泛应用,垃圾邮件的数量不断增加,传统的规则和统计方法已经无法满足对垃圾邮件进行准确识别的需求。深度学习技术以其强大的模式识别能力和自动特征提取能力成为解决垃圾邮件识别难题的有效工具。

一键难忘的博客 1093

PCL 法向量夹角剔除错误匹配点对【2026最新版】

实现了一种简单的基于对应点法线角度的对应关系去除方法。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 41万+

Spring Boot腾讯云短信申请

1.在pom.xml文件中添加依赖 <dependency> <groupId>com.tencentcloudapi</groupId> <artifactId>tencentcloud-sdk-java</artifactId> <version>3.1.270</version> </dependency> 2.新建SmsConstant常量类保存需要用到的常量 pu

qq_58595750的博客 542

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot项目中快速集成腾讯云短信服务SDK实现手机验证码功能

大家春节好!我是程序员阿福,今天过年的日子祝大家在新的一年里健康平安、步步高升、虎年大吉大利、财源滚滚! 今天分享一篇简短一点的文章,希望在将来工作中需要的时候能够用得到,如果将来工作中需要实现短信验证码功能时可以打开我的公众号并翻到这篇文章再仔细参考我的实现思路,那么笔者分享这篇文章的用意也就达到了。 前言 几乎每一个新项目中都会涉及到手机验证码的动能,用户登录采用手机验证码登录方式、用户忘记密码需要密码修改密码时以及用户进行支付确认时也需要用到手机验证码。可以说手机验证码在各种项目中用的非常多,因此在

heshengfu1211的博客 2142

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

spring-boot 若依对接腾讯云短信

spring-boot 若依对接腾讯云短信 在common模块下pop.xml引入短信库 // An highlighted block <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</o

moluren__的博客 2056

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

一个简易上手的短信服务Spring Boot Starter

作 者:jackieonway来 源:jianshu.com/u/36510c75d37c广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶。导致用户接受文...

公众号:Java后端 411

springboot 整合腾讯云短信

springboot 整合腾讯云短信

qq_43960768的博客 862

腾讯云 短信 简单使用

腾讯云 短信 使用步骤 1、进入腾讯云搜索“短信”,进入短信控制页面 2、点击签名管理创建签名 3、点击正文模板管理,创建几个合适的短信模板 4、点击就应用管理->应用列表,创建一个应用,应用中的SDK AppID和App Key都是后面需要用到的 5、springboot项目中 pom.xml添加依赖项 <dependency> <groupId>com.github.qcloudsms</groupId> <artifactId&

白日梦想家 2530

java接口项目源码下载_Java调用腾讯云接口发送短信验证码项目源码

package com.longdatech.decryptcode.controller;import com.github.qcloudsms.SmsSingleSender;import com.github.qcloudsms.SmsSingleSenderResult;import io.swagger.annotations.Api;import io.swagger.annotati...

weixin_33046149的博客 134

腾讯云的短信验证功能实现

整合腾讯云短信服务需要准备的条件 1、登录腾讯云进行账号注册 2、创建签名 3、创建短信模板 在创建签名的时候遇到难题,腾讯云创建短信签名需要填写证明类型,而且是必填的项,因为本博主买了域名,也进行了备案,所以这里直接选择网站备案后台截图,做为申请条件,最后成功申请签名下来。 当所有的准备就绪之后就可以开始代码的编写了, 创建一个普通的springboot工程, 引入相关的maven依赖 <!--腾讯云短信验证服务--> <dependency>

天元白手的博客 747

Java短信接口模板_Java调用腾讯云接口发送短信验证码项目源码

【实例简介】【实例截图】【核心代码】package com.longdatech.decryptcode.controller;import com.github.qcloudsms.SmsSingleSender;import com.github.qcloudsms.SmsSingleSenderResult;import io.swagger.annotations.Api;import i...

weixin_39835158的博客 206

别再硬编码SecretKey了!手把手教你用Spring Boot配置腾讯云短信服务(附国际版避坑指南)

本文详细介绍了如何在Spring Boot项目中安全集成腾讯云短信服务,避免硬编码SecretKey等敏感信息,提供国内版与国际版的关键差异解析。通过@ConfigurationProperties绑定配置、环境变量管理及Spring Cloud Config等方案,确保开发安全与高效。

weixin_42542669的博客 316
下一篇: Docker中的常见命令操作
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值