spring boot实现腾讯云短信发送业务
最近公司有个业务需要短信发送验证码给用户,第一次接触短信发送的功能,一开始无从下手,后面经过百度等,慢慢摸索一番之后,终于整理出一点小头头绪,现在整理成一个小文档,一方面防止后面忘记,可以随时回顾一下,一方面发出来,希望能帮到部分同学,写的不好,还请多多包含,话不多说,下面进入正题:
注册腾讯云短信服务
1.打开腾讯云首页搜索短信
2.进入首页
3.创建签名
由于我们的服务是面向国内的人员,直接选择了国内短信,打开之后会看到有签名管理,正文模板管理模块和短信群发三个模块,我们的重点在签名管理和正文模板管理,点击签名管理,首先就是先创建签名,顾名思义,签名就是在发短信的时候,短信前面的签名,我们点击创建签名
如图选择签名的用途,由于我这是测试,先选择了自用,签名的类型选择有网站,公众号等等,我这里选择的是公众号,证明的类型选择是公众号截图。
一般签名资料填写好之后选择提交,接下来就要等待腾讯云服务的平台的工作人员进行审核了,正常情况下,创建短信签名或正文模版后2个小时左右会反馈审核结果(审核时间:周一至周日9:00 - 23:00),当然了如果觉得慢,或者等着急用可以联系直接工作人员,申请快点审批。
4.正文模板申请
当签名申请通过之后,接下来就是正文模板的创建和申请了,点击正文模板管理,创建正文模板
正文模板的申请就有点严格了,正文你的内容可以是自己定义,也可以选择使用模板,短信验证功能是没问题的,但是短息的验证码只能是数字,不能带有英语等其他字符,而且不能带链接,如果带链接需要与人工客服进行沟通,进行审核
如上是我进行模板的申请。到这里,腾讯云的工作我们就做完了,下面上代码。
spring boot短信代码
整个项目的代码格式如下
1.pom文件
<!--腾讯云短信依赖 -->
<dependency>
<groupId>com.citycloud</groupId>
<artifactId>ccuap-framework-model</artifactId>
<version>1.1.6-SNAPSHOT</version>
</dependency>
2.创建短信发送实体类
在这里我们依照spring boot三层格式来写
首先创建短信内容的实体类
SmsEntity
@Data
public class SmsEntity {
private String phoneNum; //要发送的手机号
private String ucode; //要发送的内容
private String min; //限定过期的时间
}
3.创建controller层
@RestController
@Api(tags = "案件短信发送信息")
@RequestMapping("/sms")
public class SmsController {
@Autowired
SendSmsService sendSmsService;
@PostMapping("/send")
@ApiModelProperty("发送短信")
public JSONData sendSms(@RequestBody SmsEntity smsEntity){
sendSmsService.send(smsEntity);
return new JSONData();
}
}
4.创建service层
public interface SendSmsService {
void send(SmsEntity smsEntity);
}
5.实现类
@Service
@Slf4j
public class SendSmsServiceImpl implements SendSmsService {
@Override
public void send(SmsEntity smsEntity) {
//云平台应用管理SDK AppID
int appid= xxxx ;
//c
String appkey="XXXXXXXXXXXXXXXXXXXXXXXXXX" ;
///正文模板id
int templateId=XXXX;
//签名管理的内容
String smsSign = "学习小栈栈";
try{
String[] params = {smsEntity.getMin()}; //短信中的参数
SmsSingleSender ssender = new SmsSingleSender(appid,appkey);
SmsSingleSenderResult result = ssender.sendWithParam("86",smsEntity.getPhoneNum(),templateId,
params,smsSign,"","");
System.out.println(result);
}catch (Exception e){
e.printStackTrace();
}
}
}
实现类的一些参数
如上图所示,实现类里面有一些参数,我们打开我们的腾讯云;
找到左边菜单栏下的应用列表,打开我们刚才创建的服务进去之后
云平台应用管理SDK AppID对应
appid= xxxx ; //SDK AppID
String appkey=XXXXXXXX; //云平台的AppKey
//正文模板id
int templateId=XXXX; //确定选择的是哪一个模板的内容
//签名管理的内容
String smsSign = "学习小栈栈";
测试
这时候我们跑一下项目,进行一次测试
完结