| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package nju.seec.helper.util;
- import com.aliyuncs.CommonRequest;
- import com.aliyuncs.CommonResponse;
- import com.aliyuncs.DefaultAcsClient;
- import com.aliyuncs.IAcsClient;
- import com.aliyuncs.exceptions.ClientException;
- import com.aliyuncs.http.MethodType;
- import com.aliyuncs.profile.DefaultProfile;
- import lombok.Data;
- import lombok.extern.slf4j.Slf4j;
- import nju.seec.helper.config.properties.SmsProperties;
- import nju.seec.helper.enums.ExceptionType;
- import nju.seec.helper.exception.HelperException;
- import org.springframework.stereotype.Component;
- /**
- * @author cst
- */
- @Component
- @Slf4j
- public class SmsUtils {
- private static final String OK = "OK";
- private final SmsProperties smsProperties;
- public SmsUtils(SmsProperties smsProperties) {
- this.smsProperties = smsProperties;
- }
- public void sendSmsCode(String to, String code) {
- DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", smsProperties.getAccessKeyId(), smsProperties.getAccessSecret());
- IAcsClient client = new DefaultAcsClient(profile);
- CommonRequest request = new CommonRequest();
- request.setMethod(MethodType.POST);
- request.setDomain("dysmsapi.aliyuncs.com");
- request.setVersion("2017-05-25");
- request.setAction("SendSms");
- request.putQueryParameter("RegionId", "cn-hangzhou");
- request.putQueryParameter("PhoneNumbers", to);
- request.putQueryParameter("SignName", smsProperties.getSignName());
- request.putQueryParameter("TemplateCode", smsProperties.getTemplateCode());
- request.putQueryParameter("TemplateParam", "{\"code\":" + code + "}");
- try {
- CommonResponse response = client.getCommonResponse(request);
- SendSmsResult sendSmsResult = JsonUtils.fromJson(response.getData(), SendSmsResult.class);
- if (!OK.equals(sendSmsResult.Code)) {
- log.error(sendSmsResult.Message);
- throw HelperException.of(ExceptionType.ERROR, "短信验证码发送失败");
- }
- } catch (ClientException e) {
- log.error(e.getErrCode());
- }
- }
- @Data
- public static class SendSmsResult {
- private String Message;
- private String RequestId;
- private String BizId;
- private String Code;
- }
- }
|