一、配置pom.xml文件
<!-- 添加以下依赖安装阿里云Java SDK核心库 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
<!-- 若pom.xml 中引入Gson的包时,要修改版本为一下版本,不然会报异常,版本冲突->
<!-- Gson 阿里云短信发送时低版本报错-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
二、购买阿里云短信服务 生成accessKeyId accessKeySecret
点击用户头像,进入accesskeys
选择继续使用Accesskey,创建Assesskey,生成秘钥,如下图
三、设置短信模板
地址:https://dysms.console.aliyun.com/dysms.htm#/overview
1选择国内消息-签名管理-添加签名
签名名称为发送短信时参数 SignName
2选择模板管理
添加模板,完成后生成模板Code ,即为参数TemplateCode
三、写代码测试
package com.controller;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/**
* @author f
* @date 创建时间:2019年5月30日 下午4:19:19
* @version 1.0
**/
public class testAliyunDX {
public static void main(String[] args) {
final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
final String accessKeyId = "accessKeyId ";//你的accessKeyId
final String accessKeySecret = "accessKeySecret ";//你的accessKeySecret
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,accessKeySecret);
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象
CommonRequest request = new CommonRequest();
//使用post提交
request.setMethod(MethodType.POST);
request.setDomain(domain);
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumbers", "13245674567");
request.putQueryParameter("SignName", "张三");
request.putQueryParameter("TemplateCode", "SMS_166865245");
request.putQueryParameter("TemplateParam", "{\"name\":\"陈\",\"roadName\":\"绍\",\"time\":\"一\"}");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
//友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
try {
CommonResponse response = acsClient.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}