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.发送成功