按照流程操作可以实现简单短信发送服务,提供的是思路,适合初学者。
提示:只需要改yml里的内容,其他的复制就可以了。
阿里云操作
1.购买短信服务
2.工作台操作短信服务
3.学习测试
4.获取配置信息
JAVA代码
1.导入依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.16</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
2.配置yml
#该部分属于个人配置,请到自己的阿里云工作台中查找
aliyun:
sms:
# 短信签名名称
signName: xxxxx
# 短信模板code
templateCode: xxxxx
# AccessKey ID
accessKeyId: xxxxxxxx
# AccessKey Secret
secret: xxxxxxxxxxxx
3.业务层
/**
* 短信发送工具类
*/
@Component
public class SMS {
//连接YML
@Value("${aliyun.sms.signName}")
private String signName;
@Value("${aliyun.sms.templateCode}")
private String templateCode;
@Value("${aliyun.sms.accessKeyId}")
private String accessKeyId;
@Value("${aliyun.sms.secret}")
private String secret;
/**
* 发送短信
* @param phoneNumbers 手机号
* @param code 验证码
*/
public void sendMessage(String phoneNumbers,String code){
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
accessKeyId,secret);//自己账号的AccessKey信息
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");//短信服务的服务接入地址
request.setSysVersion("2017-05-25");//API的版本号
request.setSysAction("SendSms");//API的名称
request.putQueryParameter("PhoneNumbers", phoneNumbers);//接收短信的手机号码
request.putQueryParameter("SignName", signName);//短信签名名称
request.putQueryParameter("TemplateCode", templateCode);//短信模板ID
//{"code":"param"}
request.putQueryParameter("TemplateParam", "{\"code\":\""+code+"\"}");//短信模板变量对应的实际值
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}