Sringboot集成腾讯云短信服务,注册验证码

一:腾讯云短信服务配置
参考:腾讯云-国内短信快速入门

①进入腾讯云控制台的短信模块

 

创建国内短信签名

 

根据自己的需求创建签名,在签名管理中就可以看到刚刚创建的短信签名。当显示的状态变为已通过后该签名就可以使用了。

我们可以看到签名


③创建正文模板
创建短信的模板,以发送短信验证码为例。其中短信内容部分{1}{2}等变量参数为动态参数,需要我们在代码中请求腾讯云短信服务时携带。 

短信内容可填写:

您正在某某app申请手机注册,验证码为:{1},{2}分钟内有效!

创建完成模板状态显示已通过即可使用。

二:下面就是我们写代码了

1.pom引入短信依赖

  <!--短信验证码-->
        <!-- com.github.qcloudsms-->
        <dependency>
            <groupId>com.github.qcloudsms</groupId>
            <artifactId>qcloudsms</artifactId>
            <version>1.0.6</version>
        </dependency>

2.编写短信配置

public class SmsConfigConst {
    /**
     * 短信应用SDK AppID
     */
    public static final int APPID = AppID;

    /**
     * 短信应用SDK AppKey
     */
    public static final String APPKEY = "AppKey";

    // 短信模板ID,需要在短信应用中申请
    public static final int TEMPLATEID = 模板ID;

    // 签名
    public static final String SMSSIGN = "某某公司";
}

 3.短信测试

 @GetMapping("smsSendTest")
    @ApiOperation(value = "短信发送验证码测试")
    public ResponseUtil smsSendTest(@RequestParam String userName) {
        try {
            // 数组具体的元素个数和模板中变量个数必须一致
            // 比如你模板中需要填写验证码和有效时间,{1},{2}
            // 那你这里的参数就应该填两个
            String[] params = {RandomUtil.randomNumbers(6), "5"};
            SmsSingleSender ssender = new SmsSingleSender(SmsConfigConst.APPID, SmsConfigConst.APPKEY);

            // 签名参数未提供或者为空时,会使用默认签名发送短信
            SmsSingleSenderResult result = ssender.sendWithParam("86", userName, SmsConfigConst.TEMPLATEID, params, SmsConfigConst.SMSSIGN, "", "");
            //判断发送状态
            if (result.result == 0) {
            } else {
                throw new BusinessException(ResultCodeConst.BUSINESS_VALID, "发送错误,重新获取验证码");
            }
        } catch (HTTPException e1) {
            throw new BusinessException(ResultCodeConst.BUSINESS_VALID, "HTTP响应码错误");
        } catch (JSONException e2) {
            throw new BusinessException(ResultCodeConst.BUSINESS_VALID, "json解析错误");
        } catch (IOException e3) {
            throw new BusinessException(ResultCodeConst.BUSINESS_VALID, "网络IO错误");
        }
        return ResponseUtil.responseSuccess(null);
    }

4.发送成功

posted @ 2022-08-11 18:48  码海兴辰  阅读(15)  评论(0)    收藏  举报