介绍:
本次介绍的是基于Spring Boot使用的阿里云短信服务,使用场景主要有用户注册登录、本人校验、定期清理数据等场景。快速使用成本大约四小时,并且还要根据短信量来选择阿里套餐(需要付费,可一元)。若是使用定时任务,在单体项目中可以使用Spring Task定期执行,微服务项目中则可以使用xxl-job等其他调度方式进行分布式任务调度,保证只会执行一次,避免出现损耗。若非定期任务,则可以直接在方法执行末尾调用即可。
注:本次只教发送短信的步骤,并未实现查询发送短信的步骤,可以查阅相关文档,自行实现!
1、前往阿里云注册AK及密钥
2、注册短信签名以及短信模板
3、测试使用
使用方式有两种,第一种是直接在阿里云平台发送,过于简单,我们选择调用API方式实现!
①、在Spring Boot 项目种引入依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-dysmsapi20170525</artifactId>
<version>2.0.23</version>
</dependency>
②、编写方法
public static boolean sendExam(String PhoneNumbers) {
try {
SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
.phoneNumbers(PhoneNumbers)
.signName("签名")
.templateCode("模板id")
//若是有参数则使用 .templateParam("{\"code\":\"" + code + "\"}")
.build();
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
.accessKeyId("AK ID")
.accessKeySecret("AK Secret")
.build());
AsyncClient client = AsyncClient.builder()
.credentialsProvider(provider)
.overrideConfiguration(ClientOverrideConfiguration.create()
.setEndpointOverride("dysmsapi.aliyuncs.com"))
.build();
CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
SendSmsResponse resp = response.get();
//日志记录
log.info(new Gson().toJson(resp));
client.close();
return true;
/*日志记录
SendSmsResponse resp = response.get();
System.out.println(new Gson().toJson(resp));
*/
} catch (Exception e) {
return false;
}
}
③、测试结果