SpringBoot整合阿里云短信业务
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.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class AliyunSmsUtil {
public static SendSmsResponse sendSms(String phoneNumber, String templateCode, String signName, String templateParam) throws ClientException {
// 设置超时时间-可自行调整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
// 初始化acsClient,核心客户端
IClientProfile profile = DefaultProfile.getProfile("你的regionID", "你的AccessKeyId", "你的AccessKeySecret");
DefaultProfile.addEndpoint("你的regionID", "你的product", "你的domain");
IAcsClient acsClient = new DefaultAcsClient(profile);
// 组装请求对象-具体的业务参数在此设置
SendSmsRequest request = new SendSmsRequest();
// 必填: 待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用成功率更高,但是可能存在单条短信误判为垃圾短信的情况。
request.setPhoneNumbers(phoneNumber);
// 必填: 短信签名-可在短信控制台中找到
request.setSignName(signName);
// 必填: 短信模板-可在短信控制台中找到
request.setTemplateCode(templateCode);
// 必填: 模板中占位符的值-可使用JSON格式
request.setTemplateParam(templateParam);
// 选填: 设置流式传输
// request.setSysRegionId("你的regionID");
// 选填: 上行短信报文格式(默认为JSON)
// request.setSmsUpExtendCode("DEFAULT");
// 发送短信
SendSmsResponse response = acsClient.getAcsResponse(request);
return response;
}
}
在Spring Boot中使用时,你可以在Service层调用这个工具类方法来发送短信。以下是一个简单的Service层示例:
import org.springframework.stereotype.Service;
@Service
public class SmsService {
public void sendSms(String phoneNumber, String templateCode, String signName, String templateParam) {
try {
SendSmsResponse response = AliyunSmsUtil.sendSms(phoneNumber, templateCode, signName, templateParam);
评论已关闭