admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/util/AliyunSMSUtil.java
@@ -1,51 +1,59 @@
package com.yeshi.fanli.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.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.yeshi.fanli.exception.SMSException;
import net.sf.json.JSONArray;
//腾讯短信发送
public class AliyunSMSUtil {
   /**
    * 发送单一短信
    *
    * @param phone
    * @param msg
    */
   public static void sendSingleMsg(String phone, String templateCode, String templateParamJson) throws SMSException {
      DefaultProfile profile = DefaultProfile.getProfile("default", Constant.smsConfig.getAliyunAppId(),
            Constant.smsConfig.getAliyunAppSecret());
      IAcsClient client = new DefaultAcsClient(profile);
      CommonRequest request = new CommonRequest();
      // request.setProtocol(ProtocolType.HTTPS);
      request.setMethod(MethodType.POST);
      request.setDomain("dysmsapi.aliyuncs.com");
      request.setVersion("2017-05-25");
      request.setAction("SendBatchSms");
      JSONArray array = new JSONArray();
      array.add(phone);
      request.putQueryParameter("PhoneNumberJson", array.toString());
      request.putQueryParameter("SignNameJson", Constant.smsConfig.getSmsSign());
      request.putQueryParameter("TemplateCode", templateCode);
      request.putQueryParameter("TemplateParamJson", templateParamJson);
      try {
         CommonResponse response = client.getCommonResponse(request);
         System.out.println(response.getData());
      } catch (ServerException e) {
         e.printStackTrace();
      } catch (ClientException e) {
         e.printStackTrace();
      }
   }
}
package com.yeshi.fanli.util;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.yeshi.fanli.exception.config.SMSException;
import com.yeshi.fanli.log.LogHelper;
//腾讯短信发送
public class AliyunSMSUtil {
   /**
    * 发送单一短信
    *
    * @param phone
    * @param msg
    */
   public static void sendSingleMsg(String phone, String templateCode, String templateParamJson) throws SMSException {
      IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", Constant.smsConfig.getAliyunAppId(),
            Constant.smsConfig.getAliyunAppSecret());
      try {
         DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");
      } catch (ClientException e) {
         e.printStackTrace();
      }
      IAcsClient acsClient = new DefaultAcsClient(profile);
      // 组装请求对象
      SendSmsRequest request = new SendSmsRequest();
      // 使用post提交
      request.setMethod(MethodType.POST);
      request.setPhoneNumbers(phone);
      request.setSignName("小影记科技");
      request.setTemplateCode(templateCode);
      request.setTemplateParam(templateParamJson);
      SendSmsResponse sendSmsResponse;
      try {
         sendSmsResponse = acsClient.getAcsResponse(request);
         if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
            // 请求成功
            LogHelper.smsInfo("阿里云短信发送成功:" + phone);
         } else {
            LogHelper.smsInfo("阿里云短信发送失败:" + phone + "-" + sendSmsResponse.getMessage());
            throw new SMSException(3, sendSmsResponse.getMessage());
         }
      } catch (ServerException e) {
         e.printStackTrace();
      } catch (ClientException e) {
         e.printStackTrace();
      }
   }
}