SpringBoot调用阿里云接口发送短信
1、准备工作2、Controller层接口3、SmsUtils(发送短信工具类)4、pom.xml新增短信坐标
1、准备工作
1.1、流程 1.2、开通短信服务 1.3、申请认证密钥 1.4、 申请短信签名 1.5、申请短信模板
2、Controller层接口
@GetMapping("sendSMS")
public void getUser() {
StringBuilder builder
= new StringBuilder();
for (int i
= 0; i
< 6; i
++) {
builder
.append(new Random().nextInt(9) + 1);
}
String smsCode
= builder
.toString();
try {
SmsUtil
.sendSms("18319143841", "自己在阿里云申请的签名名称", "填写自己申请的模板code", smsCode
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
3、SmsUtils(发送短信工具类)
import com
.aliyuncs
.DefaultAcsClient
;
import com
.aliyuncs
.IAcsClient
;
import com
.aliyuncs
.dysmsapi
.model
.v20170525
.SendSmsRequest
;
import com
.aliyuncs
.dysmsapi
.model
.v20170525
.SendSmsResponse
;
import com
.aliyuncs
.profile
.DefaultProfile
;
import com
.aliyuncs
.profile
.IClientProfile
;
import lombok
.extern
.slf4j
.Slf4j
;
@Slf4j
public class SmsUtil {
private static String accessKeyId
= "LTAI4GHw8BMP1RhZwYKedBRu";
private static String accessKeySecret
= "1F5zjL1Ke4DIHVklZmOygnx5z2yKpA";
static final String product
= "Dysmsapi";
static final String domain
= "dysmsapi.aliyuncs.com";
public static void sendSms(String phoneNumbers
, String signName
, String templateCode
, String param
) {
try {
System
.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System
.setProperty("sun.net.client.defaultReadTimeout", "10000");
IClientProfile profile
= DefaultProfile
.getProfile("cn-hangzhou", accessKeyId
, accessKeySecret
);
DefaultProfile
.addEndpoint("cn-hangzhou", "cn-hangzhou", product
, domain
);
IAcsClient acsClient
= new DefaultAcsClient(profile
);
SendSmsRequest request
= new SendSmsRequest();
request
.setPhoneNumbers(phoneNumbers
);
request
.setSignName(signName
);
request
.setTemplateCode(templateCode
);
request
.setTemplateParam(param
);
request
.setOutId("yourOutId");
SendSmsResponse sendSmsResponse
= acsClient
.getAcsResponse(request
);
if (!"OK".equals(sendSmsResponse
.getCode())) {
log
.info("发送短信失败,{}", sendSmsResponse
);
throw new RuntimeException(sendSmsResponse
.getMessage());
}
} catch (Exception e
) {
log
.info("发送短信失败,{}", e
);
throw new RuntimeException("发送短信失败");
}
}
}
4、pom.xml新增短信坐标
<!--短信发送
-->
<dependency>
<groupId>com
.alibaba
.cloud
</groupId
>
<artifactId>spring
-cloud
-alicloud
-sms
</artifactId
>
</dependency
>