zhongrj
2023-07-06 3ce737b52fca082ac3a2ecda4a848e2e4abcd0ee
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sms/util/SmsUtils.java
@@ -6,38 +6,30 @@
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSAPI;
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.dynsend.DynSMSSendRequest;
import cn.com.flaginfo.sdk.cmc.api.sms.reply.SMSReplyAPI;
import cn.com.flaginfo.sdk.cmc.api.sms.reply.SMSReplyDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.reply.SMSReplyRequest;
import cn.com.flaginfo.sdk.cmc.api.sms.replyconfirm.SMSReplyConfirmAPI;
import cn.com.flaginfo.sdk.cmc.api.sms.replyconfirm.SMSReplyConfirmRequest;
import cn.com.flaginfo.sdk.cmc.api.sms.report.SMSReportAPI;
import cn.com.flaginfo.sdk.cmc.api.sms.report.SMSReportRequest;
import cn.com.flaginfo.sdk.cmc.api.sms.report.SMSReportResult;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSApi;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendDataResult;
import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest;
import cn.com.flaginfo.sdk.cmc.common.ApiEnum;
import cn.gistack.sm.sms.constant.SmsConstant;
import com.alibaba.fastjson.JSON;
import org.aspectj.lang.annotation.Before;
import cn.gistack.common.constant.SmsConstant;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Random;
import static cn.gistack.sm.sms.constant.SmsConstant.*;
import static cn.gistack.common.constant.SmsConstant.*;
/**
 * 短信发送工具类
 * @author zhongrj
 * @date 2023-05-30
 */
@Component
public class SmsUtils {
   /**
    * 固定内容发送
    */
   public static String sendMsg(SMSSendRequest sendRequest) {
   public static ComResult<SMSSendDataResult> sendMsg(SMSSendRequest sendRequest) {
      ApiConfig apiConfig = new ApiConfig(SpCode, AppKey, AppSecret);
      ApiProvider provider = ApiProvider.getInstance(apiConfig);
      //请求接口
@@ -47,73 +39,38 @@
      sendRequest.setSerialNumber(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
      ComResult<SMSSendDataResult> request = api.request(sendRequest);
      // 返回
      return JSON.toJSONString(request);
      return request;
   }
//   public static void main(String[] args) {
//      SMSSendRequest sendRequest = new SMSSendRequest();
//      sendRequest.setMessageContent("你有一项编号为12349的事务需要处理;");
//      sendRequest.setTemplateId("2431012234034");
//      sendRequest.setUserNumber("15170720695");
//      String s = sendMsg(sendRequest);
//      System.out.println("s = " + s);
//   }
//   /**
//    * 固定内容发送
//    */
//   public void testSendMethod() {
//      // x-sp-code
//      String xspcode = "214596";
//      // x-app-key
//      String xappkey = "hbsl_zhsk";
//      // 计算 x-request-id
//      String xrequestid = getRandNumber();
//      // x-sign
//      String xsign = "";
//
//
//      //请求参数
//      SMSSendRequest sendRequest = new SMSSendRequest();
//      sendRequest.setMessageContent("你有一项编号为12349的事务需要处理;");
//      sendRequest.setTemplateId("2431012234034");
//      sendRequest.setUserNumber("15170720695");
//      sendRequest.setSerialNumber("20210801120000123456");
//
//   }
   /**
    * 获取随机字符串
    * @return
    */
   private String getRandNumber() {
      // 计算token
//      Date date = new Date();
//      String dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date);
   public static String getRandNumber() {
      Random random = new Random();
      //把随机生成的数字转成字符串
      String str = String.valueOf(random.nextInt(9));
      for (int i = 0; i < 5; i++) {
         str += random.nextInt(9);
      }
      return String.valueOf(System.currentTimeMillis()) + str;
      return str;
   }
   /**
    * 动态短信内容批量发送
    */
//   public static void testDynSendMethod() {
//      //请求接口
//      DynSMSAPI api = (DynSMSAPI) provider.getApi(ApiEnum.SENDDYNSMS);
//      api.setRequestUrl(SmsConstant.HOST + "/api/sms-var/send");
//      //请求参数
//      DynSMSSendRequest sendRequest = new DynSMSSendRequest();
//      sendRequest.setTemplateId("1011012028688");
//      sendRequest.setDynData(new String[][]{{"手机号码", "编号"}, {"13000000000", "456"}});
//      sendRequest.setSerialNumber("20210804120000123457");
//      ComResult<DynSMSSendDataResult> result = api.request(sendRequest);
//      System.out.println(JSON.toJSONString(result));
//   }
   public static ComResult<DynSMSSendDataResult> dynSendMethod(DynSMSSendRequest sendRequest) {
      ApiConfig apiConfig = new ApiConfig(SpCode, AppKey, AppSecret);
      ApiProvider provider = ApiProvider.getInstance(apiConfig);
      //请求接口
      DynSMSAPI api = (DynSMSAPI) provider.getApi(ApiEnum.SENDDYNSMS);
      api.setRequestUrl(SmsConstant.HOST + SmsConstant.sendVarUrl);
      //请求参数
      sendRequest.setSerialNumber(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()));
      ComResult<DynSMSSendDataResult> result = api.request(sendRequest);
      // 返回
      return result;
   }
   /**
    * 状态报告