如果你希望试一试那么直接复制运行,如果你先更进一步了解就仔细看看代码,花上5-30分钟然后可以重新应该能理解。然后就自己结合自己需求改改吧。
POM.xml
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.6</version> <!-- 注:如提示报错,先升级基础包版,无法解决可联系技术支持 -->
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
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.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class SMSAliUtil {
/**
* 阿里短信服务发送工具类
* @param telephone 必填:待发送手机号
* @param templateParam 可选:模板中的变量替换JSON串 "{\"name\":\"Tom\", \"code\":\"123\"}"
* @param signName 必填:短信签名-可在短信控制台中找到
* @param templateCode 必填:短信模板-可在短信控制台中找到
* @param accessKeyId 账号AK
* @param ali_accessKeySecret 账号
* @return 返回阿里返回值
* @throws ServerException
* @throws ClientException
*/
public static SendSmsResponse sendSMS(String telephone,String templateParam,String signName,String templateCode,String accessKeyId,String ali_accessKeySecret) throws ServerException, ClientException {
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, ali_accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");
IAcsClient acsClient = new DefaultAcsClient(profile);
// 组装请求对象-具体描述见控制台-文档部分内容
SendSmsRequest requestSms = new SendSmsRequest();
// 必填:待发送手机号
requestSms.setPhoneNumbers(telephone);
// 必填:短信签名-可在短信控制台中找到
requestSms.setSignName(signName);
// 必填:短信模板-可在短信控制台中找到
requestSms.setTemplateCode(templateCode);
// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为"{\"name\":\"Tom\", \"code\":\"123\"}"
requestSms.setTemplateParam(templateParam);
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(requestSms);
return sendSmsResponse;
}
}
sendSmsResponse
public class SendSmsResponse extends AcsResponse {
//请求ID。
private String requestId;
//发送回执ID,可根据该ID在接口QuerySendDetails中查询具体的发送状态。
private String bizId;
//请求状态码。 返回OK代表请求成功。 其他错误码(https://blog.csdn.net/document_detail/101346.html)。
private String code;
//状态码的描述。
private String message;
}