springboot项目集成阿里云的SMS国内短信服务实现验证码发送功能
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 SmsUtil {
public static SendSmsResponse sendSms(String phoneNumber, String templateCode, String signName, String verificationCode) 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);
// 组装请求对象-具体的参数可以参照SDK的demo
SendSmsRequest request = new SendSmsRequest();
// 必填: 待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用成功率更高,但是可能存在单条短信误判为垃圾短信的情况。
request.setPhoneNumbers(phoneNumber);
// 必填: 短信签名-可在短信控制台中找到
request.setSignName(signName);
// 必填: 短信模板-可在短信控制台中找到
request.setTemplateCode(templateCode);
// 必填: 短信模板的变量值-可使用JSON格式
request.setTemplateParam("{\"code\":\"" + verificationCode + "\"}");
// 选填: 上行短信总数,该参数非必填
// request.setSmsUpExtendCode("9090");
// 发送短信
SendSmsResponse response = acsClient.getAcsResponse(request);
return response;
}
}
在这个代码实例中,我们定义了一个SmsUtil
类,其中包含了一个sendSms
静态方法,用于发送短信。这个方法接受电话号码、模板代码、签名名称和验证码作为参数,并返回SendSmsResponse
对象。在方法内部,我们设置了超时时间、初始化了ACS客户端,并构建了发送短信的请求对象。最后,我们调用acsClient.getAcsResponse(request)
来发送短信,并返回响应对象。这个简单的实现展示了如何在Spring Boot项目中集成阿里云短信服务发送验证码的基本过程。
评论已关闭