1)查看 API Demo
2)新建一个SpringBoot项目 sms-verification
3)引入依赖
<!--aliyun-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.3</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
4)编写一个测试类,就把刚刚的 API Demo 复制过来进行修改
package com.gmw.sms;
import com.alibaba.fastjson.JSONObject;
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;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@SpringBootTest
class SmsApplicationTests {
@Test
void contextLoads() {
/**
* 第一个参数默认填写就行
* 第二个参数表示"<accessKeyId>"
* 第三个参数表示"<accessSecret>"
*/
// 这里的 AccessKey ID 、 Secret就是 阿里云用户对于的值,复制过来即可
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
IAcsClient client = new DefaultAcsClient(profile);
//设置相关固定的参数
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
//构造参数
Map<String,Object> param = new HashMap<>();
String code = UUID.randomUUID().toString().substring(0,4);
param.put("code",code);
//设置发送相关的参数
request.putQueryParameter("PhoneNumbers","手机号"); //手机号
request.putQueryParameter("SignName","申请阿里云 签名名称"); //申请阿里云 签名名称
request.putQueryParameter("TemplateCode","申请阿里云 模板code"); //申请阿里云 模板code
request.putQueryParameter("TemplateParam", JSONObject.toJSONString(param)); //验证码数据,转换json数据传递
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
5)最后就可以得到短信了
注意:
如果上面自定义的参数名写错,不会成功 如果 模板、签名 没有通过审核会报错>