package com.casic.missiles.utils;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* @Description: 阿里云短信工具类
* @Author: wangpeng
* @Date: 2023/3/6 16:07
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
@Configuration
@ConfigurationProperties(prefix = "sms")
public class SMSUtil {
private String accessKeyId;
private String secret;
// 短信签名
private String signName;
// 短信模板
private String templateCode;
// 短信服务器区域
private String regionId;
public void sendMsg(String phone, String code) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, secret);
DefaultAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
//下面两个不能动
request.setSysProduct("Dysmsapi");
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
//自定义参数(手机号,验证码,签名,模板)
request.putQueryParameter("RegoinId", regionId);
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("SignName", signName); //填自己申请的名称
request.putQueryParameter("TemplateCode", templateCode);
request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}"); //验证码
try {
CommonResponse response = client.getCommonResponse(request);
log.info("阿里云短信响应信息:" + response.getData());
boolean success = response.getHttpResponse().isSuccess();
log.info("短信发送是否成功:" + success);
} catch (ClientException e) {
e.printStackTrace();
}
}
}