阿里云短信配置类 从文件配置中读取 信息
添加依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
</dependency>
可以将以下文件配置到common 模块中
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.nineclock.common.utils.JsonUtils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
@ConfigurationProperties(prefix = "aliyun.sms")
@Slf4j
@Data
public class AliyunSmsUtils {
private String accessKeyId;
private String accessKeySecret;
private String signName;
private String templateCode;
public Boolean sendSMS(String phone, String code) {
log.info("调用阿里云服务,发送短信: " + phone + ", " + code);
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
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");
request.putQueryParameter("RegionId", "cn-hangzhou");
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());
Map map = JsonUtils.toBean(response.getData(), Map.class);
return map.get("Code").equals("OK");
} catch (Exception e) {
log.error("发送短信出错:", e);
return false;
}
}
}
在配置文件中 添加以下信息 供配置类读取
aliyun:
sms:
accessKeyId: # AccessKey ID
accessKeySecret: # AccessKey Secret
signName: # 签名名称
TemplateCode: # 模板CODE