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讲解+相关错误分析)

JavaWeb-SpringBoot_使用MySQL管理用户登录注册+接入腾讯短信SDK

SpringBoot整合Mail发送邮件

Python 腾讯云短信,发送手机验证码