1、引入maven依赖:
<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>
2、参数常量定义 SmsKeyConstant.java :
package com.ygxk.lws.core.sms;
public class SmsKeyConstant {
public static final String PRODUCT = "Dysmsapi";
public static final String DOMAIN = "dysmsapi.aliyuncs.com";
public static final String ACCESS_KEY_ID = "xxx";
public static final String ACCESS_KEY_SECRET = "xxx";
}
3、短信服务工具类 SmsService.java :
package com.ygxk.lws.core.sms;
import com.alibaba.fastjson.JSONObject;
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.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class SmsService {
public static String sendCode(String mobile, String code, int type) throws ClientException {
String setTemplateCode;
switch (type) {
case 1:
setTemplateCode = "SMS_155275111";
break;
case 2:
setTemplateCode = "SMS_155275222";
break;
default :
setTemplateCode = "SMS_155275333";
break;
}
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", SmsKeyConstant.ACCESS_KEY_ID,
SmsKeyConstant.ACCESS_KEY_SECRET);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", SmsKeyConstant.PRODUCT, SmsKeyConstant.DOMAIN);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setMethod(MethodType.POST);
request.setPhoneNumbers(mobile);
request.setSignName("你的短信签名");
request.setTemplateCode(setTemplateCode);
JSONObject jsonObject = new JSONObject();
jsonObject.put("code",code);
request.setTemplateParam(String.valueOf(jsonObject));
request.setOutId(mobile);
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
return sendSmsResponse.getCode();
}
}