依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
工具类
import java.util.HashMap;
import java.util.Map;
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 {
private static final String PRODUCT = "Dysmsapi";
private static final String DOMAIN = "dysmsapi.aliyuncs.com";
private static final String ACCESS_KEY_ID = "XXXX";
private static final String ACCESS_KEY_SECRET = "XXXXX";
private static final String SIGN_NAME = "XXXX";
private static final String REGION_ID = "cn-hangzhou";
public static SendSmsResponse sendSms(String phone,String templateCode, String templateParam) throws ClientException {
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
IClientProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
DefaultProfile.addEndpoint(REGION_ID, REGION_ID, PRODUCT, DOMAIN);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phone);
request.setSignName(SIGN_NAME);
request.setTemplateCode(templateCode);
request.setTemplateParam(templateParam);
request.setOutId("10000");
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
return sendSmsResponse;
}
public static void main(String[] args) throws ClientException, InterruptedException {
Map<String,String> paramMap = new HashMap<String,String>();
String code = createRandomVcode();
paramMap.put("code", code);
String templateParam= com.alibaba.fastjson.JSONObject.toJSONString(paramMap);
String phones = "XXXXXXX";
String templateCode = "XXXXXXX";
SendSmsResponse response = sendSms(phones,templateCode,templateParam);
System.out.println("短信接口返回的数据----------------");
System.out.println("Code=" + response.getCode());
System.out.println("Message=" + response.getMessage());
System.out.println("RequestId=" + response.getRequestId());
System.out.println("BizId=" + response.getBizId());
}
public static String createRandomVcode() {
StringBuilder vcode = new StringBuilder();
for (int i = 0; i < 6; i++) {
vcode.append((int) (Math.random() * 9));
}
return vcode.toString();
}
}