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("13980304975", "23456");