1、工具类
1 import com.aliyuncs.DefaultAcsClient;
2 import com.aliyuncs.IAcsClient;
3 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
4 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
5 import com.aliyuncs.exceptions.ClientException;
6 import com.aliyuncs.profile.DefaultProfile;
7 import com.aliyuncs.profile.IClientProfile;
8 import org.springframework.util.Assert;
9
10 /**
11 * 阿里云短信服务:
12 * 注意:需要 签名名称、模版CODE 以及 RAM访问控制中的 AccessKeyID 和 AccessKeySecret
13 */
14 public class AliyunSmsUtils {
15
16 //产品名称
17 static final String PRODUCT = "Dysmsapi";
18 //产品域名
19 static final String DOMAIN = "dysmsapi.aliyuncs.com";
20
21 static final String ACCESSKEYID = "";
22 static final String ACCESSKEYSECRET= "";
23
24 public static SendSmsResponse sendSms(String telephone, String code) throws ClientException {
25 //可自助调整超时时间
26 System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
27 System.setProperty("sun.net.client.defaultReadTimeout", "10000");
28 //初始化acsClient,暂不支持region化
29 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESSKEYID, ACCESSKEYSECRET);
30 DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", PRODUCT, DOMAIN);
31 IAcsClient acsClient = new DefaultAcsClient(profile);
32 //组装请求对象-具体描述见控制台-文档部分内容
33 SendSmsRequest request = new SendSmsRequest();
34 //必填:待发送手机号
35 request.setPhoneNumbers(telephone);
36 //必填:短信签名-可在短信控制台中找到
37 request.setSignName("");
38 //必填:短信模板-可在短信控制台中找到
39 request.setTemplateCode("");
40 request.setTemplateParam("{\"code\":\"" + code + "\"}");
41 // 扩展字段回执id
42 // request.setOutId("");
43 SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
44 Assert.isTrue((sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")),"短信发送失败!");
45 return sendSmsResponse;
46 }
47 }
2、调用示例
AliyunSmsUtils.sendSms("phonenumber", "23456");