1.首先引用阿里云sdk pom文件
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
2.准备工作 -
- 2.1 创建AccessKeyId
https://usercenter2.aliyun.com/home
登录阿里云的用户中心
然后点击accesskeys,进入之后创建accesskeys
!!!!!!!!!!!!!!!!!!!!!!!
请注意只有一次下载创建的Key和KeySecret的机会
!!!!!!!!!!!!!!!!!!!!!!!
- 2.2 创建AccessKeySecret
同上 - 2.3 创建签名
https://dysms.console.aliyun.com/dysms.htm#/domestic/text/sign
同理在这里创建签名
- 2.4 创建模板
在签名栏右侧有创建模板
例子:
3.发送demo
/**
* 不同的内容发送给不同的手机号,最多十个手机号码
* @param message
*/
private void sendMessage(SendBatchMessage message) {
DefaultProfile profile = DefaultProfile.getProfile("default", "AccessKeyId", "AccessKeySecret");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendBatchSms");
request.putQueryParameter("RegionId", "default");//默认就行,他自己会分配
//要发送给谁 最多十个手机号码 例子:["15900000000","13500000000"] 为数组和SignNameJson通过下标对应
request.putQueryParameter("PhoneNumberJson", "[\"15900000000\",\"13500000000\"]");
request.putQueryParameter("SignNameJson", "签名名称");
request.putQueryParameter("TemplateCode", "模板code");
//模板的参数值,key要和模板中一致,然后会将内容进行替换 为数组和SignNameJson通过下标对应
request.putQueryParameter("TemplateParamJson", "[{\"code\":123},{\"code\":123}]");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
/**
* 同一内容,群发
* @param message
*/
private void sendMessage(SendSmsMessage message) {
DefaultProfile profile = DefaultProfile.getProfile("default", "AccessKeyId", "AccessKeySecret");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("RegionId", "default");//默认就行,他自己会分配
//要发送给谁 最多十个
request.putQueryParameter("PhoneNumbers", "[\"18888888888\",\"18666666666\"]");
request.putQueryParameter("SignName", "签名名称");
request.putQueryParameter("TemplateCode", "模板code");
//key要和模板中一致 然后会将内容进行替换
request.putQueryParameter("TemplateParam", "{\"code\":123}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}