⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 send2huawei.java

📁 东软短信网关接入程序
💻 JAVA
字号:
package com.zznode.dp.ismg.sender;

import com.huawei.smproxy.*;
import com.huawei.insa2.comm.cmpp.message.*;
import com.huawei.insa2.util.*;
import com.zznode.dp.ismg.data.MessageModel;
import java.sql.Date;
import com.zznode.dp.ismg.util.Log;
import com.zznode.dp.ismg.util.StringHandler;
import com.zznode.dp.ismg.data.ConnectionModel;
import com.zznode.dp.ismg.data.SubmitMessageModel;

public class Send2HuaWei {
  private static ConnectionModel connectionModel = null;
  private static SubmitMessageModel submitmMessageModel = null;
  /** 短信收发接口*/
  private SMProxy myProxy = null;

  /**日志文件*/
  private Log log;

  StringHandler stringhandler = null;

  public Send2HuaWei(ConnectionModel connectionModel,
                     SubmitMessageModel submitmMessageModel) {
    this.connectionModel = connectionModel;
    this.submitmMessageModel = submitmMessageModel;
    log = new Log().getLog();
    stringhandler = new StringHandler().getStringHandler();
  }

  /**
   * 短信发送程序入口
   * @param messageModelArry MessageModel[] 短信消息体
   * @return String
   */
  public String sendSms(MessageModel[] messageModelArry) {
    boolean isSuccess = true; //是否发送成功
    StringBuffer reponse = new StringBuffer(); ; //返回消息
    try {
      //初始化短信连接信息
      if (myProxy == null) {
        Args args = initConfig();
        if (args == null) {
          String msg = "配置文件不存在";
          System.out.println(msg);
          log.writeLog(msg);
          return msg;
        }
        myProxy = new SMProxy(args);
      }
      else if (myProxy.getConnState() != null) {
        Args args = initConfig();
        if (args == null) {
          String msg = "配置文件不存在";
          System.out.println(msg);
          log.writeLog(msg);
          return msg;
        }
        myProxy = new SMProxy(args);
      }

      if (myProxy != null) {
        //发送短信
        synchronized (myProxy) {
          for (int i = 0; i < messageModelArry.length; i++) {
            MessageModel messageModel = messageModelArry[i];
            for (int j = 0; j < messageModel.getMessageContent().length; j++) {
              String messageContent = messageModel.getMessageContent()[j];
              CMPPSubmitMessage submitMsg = initCMPP(messageModel.getPhone(),
                  stringhandler.strToUcs2(messageContent));
              log.writeLog("submit start");
              CMPPSubmitRepMessage submitRepMsg = (CMPPSubmitRepMessage)
                  myProxy.
                  send(
                  submitMsg);
              log.writeLog("submit end");
              if (submitRepMsg.getResult() != 0) {
                isSuccess = false;
                System.out.println("短信发送失败:error result=" +
                                   submitRepMsg.getResult());
                log.writeLog("短信发送失败:error result=" +
                             submitRepMsg.getResult());
              }
              else {
                System.out.println("短信发送成功!");
                log.writeLog("短信发送成功!");
              }
            }
            log.writeLog("是否全部发送成功:" + isSuccess);
            if (isSuccess) {
              reponse.append(messageModel.getMessageId() + "@@success@@,");
            }
            else {
              reponse.append(messageModel.getMessageId() + "@@false@@,");
            }
          }
        }
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
      log.writeLog("短信发送失败:");
      log.writeLog(ex.getMessage());
    }
    return reponse.toString();
  }

  /**
   * 初始化短信网关连接信息
   * @return Args
   */
  private Args initConfig() {
    Args args = new Args();
    args.set("host", connectionModel.getHost().trim());
    args.set("port", connectionModel.getPort().trim());
    args.set("source-addr", connectionModel.getSource_addr().trim());
    args.set("shared-secret", connectionModel.getShared_secret().trim());
    args.set("heartbeat-interval", connectionModel.getHeartbeat_interval().trim());
    args.set("reconnect-interval", connectionModel.getReconnect_interval().trim());
    args.set("heartbeat-noresponseout",
             connectionModel.getHeartbeat_noresponseout().trim());
    args.set("transaction-timeout",
             connectionModel.getTransaction_timeout().trim());
    args.set("version", connectionModel.getVersion().trim());
    args.set("debug", connectionModel.getDebug().trim());
    return args;
  }

  /**
   * 初始化连接
   * @param tel String[]
   * @param msg String
   * @return CMPPSubmitMessage
   */
  private CMPPSubmitMessage initCMPP(String tel[], byte[] msg_Content) {
    CMPPSubmitMessage submitMsg = null;
    try {
//      if (tel != null && msg != null && tel.length != 0 && !msg.equals("")) {
      if (tel != null && tel.length != 0) {
        int pk_Total = submitmMessageModel.getPk_Total();
        int pk_Number = submitmMessageModel.getPk_Number();
        int registered_Delivery = submitmMessageModel.getRegistered_Delivery();
        int msg_Level = submitmMessageModel.getMsg_Level();
        String service_Id = submitmMessageModel.getService_Id();
        int fee_UserType = submitmMessageModel.getFee_UserType();
        String fee_Terminal_Id = "";
        int tp_Pid = submitmMessageModel.getTp_Pid();
        int tp_Udhi = submitmMessageModel.getTp_Udhi();
        int msg_Fmt = submitmMessageModel.getMsg_Fmt();
        String msg_Src = submitmMessageModel.getMsg_Src();
        String fee_Type = submitmMessageModel.getFee_Type();
        String fee_Code = submitmMessageModel.getFee_Code();
        Date valid_Time = null;
        Date at_Time = null;
        String src_Terminal_Id = submitmMessageModel.getSrc_Terminal_Id();
        String[] dest_Terminal_Id = tel;
//        byte[] msg_Content = msg.getBytes();
        String reserve = "";

        submitMsg =
            new CMPPSubmitMessage(
            pk_Total,
            pk_Number,
            registered_Delivery,
            msg_Level,
            service_Id,
            fee_UserType,
            fee_Terminal_Id,
            tp_Pid,
            tp_Udhi,
            msg_Fmt,
            msg_Src,
            fee_Type,
            fee_Code,
            valid_Time,
            at_Time,
            src_Terminal_Id,
            dest_Terminal_Id,
            msg_Content,
            reserve
            );
      }
      else {
        return null;
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    return submitMsg;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -