SpringBoot整合腾讯短信服务发送验证码
Posted 暴躁的程序猿啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合腾讯短信服务发送验证码相关的知识,希望对你有一定的参考价值。
来到腾讯云首页
在搜索栏搜索短信服务
点击免费试用 新用户会有100条的免费额度
根据提示创建应用即可
应用创建完毕需要申请签名和模板
提交签名进行审核 审核通过才可以使用
创建短信模板 就是你要发送的内容
审核通过即可使用
查看自己的appid和key 一会需要复制到我们的代码中
导入pom依赖
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.270</version><!-- 注:这里只是示例版本号(可直接使用),可获取并替换为 最新的版本号,注意不要使用4.0.x版本(非最新版本) -->
</dependency>
编写properties配置文件 配置需要用到的参数
#签名参数使用的是`签名内容`
tx.sms.smsSign=你在短信服务中申请的签名内容
#短信模板 ID,需要在短信应用中申请
tx.sms.templateId=你在短信服务中申请的魔板ID
#短信应用 SDK AppID
tx.sms.appid=你的AppID
#短信应用 SDK AppKey
tx.sms.appkey=你的AppKey
编写Utils工具类
@Component
public class MsmUtils
// 短信应用 SDK AppID
@Value("$tx.sms.appid")
private Integer appid; // SDK AppID 以1400开头
// 短信应用 SDK AppKey
@Value("$tx.sms.appkey")
private String appkey
// 短信模板 ID,需要在短信应用中申请
@Value("$tx.sms.templateId")
private Integer templateId; // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
// 签名
@Value("$tx.sms.smsSign")
private String smsSign; // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台申请
//方法参数是要接收短信的手机号, 第二个是你申请的短信魔板需要的参数集合
public void sendSMS(String phone, ArrayList<String> params)
try
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
SmsSingleSenderResult result = ssender.sendWithParam("86", phone, templateId, params, smsSign, "", "");
System.out.println(result);
catch (HTTPException e)
// HTTP 响应码错误
e.printStackTrace();
catch (JSONException e)
// JSON 解析错误
e.printStackTrace();
catch (IOException e)
// 网络 IO 错误
e.printStackTrace();
调用测试即可
我这里的参数为code 和 3 code对应我随机生成的二维码 3是二维码的有效期 参数顺序与个数与你自己创建的模板内容有关
例如我的模板为这样所以这么传递参数
注意
这里有个雷大家注意一下 properties配置文件的编码类型如果与我们常用编码不一致将会签名乱码 乱码会导致发送失败 本人亲自踩坑 大家避雷
腾讯云技术社区 :https://cloud.tencent.com/developer/support-plan?invite_code=12gk9sv7uv8yp
以上是关于SpringBoot整合腾讯短信服务发送验证码的主要内容,如果未能解决你的问题,请参考以下文章
腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)