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

📄 phssubmit.java

📁 JAVA实现的短信网关程序
💻 JAVA
字号:
package sms.PHS;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

import java.io.PrintStream;

// Referenced classes of package net.smsfan.smg.api.phs20:
//            PHSRequest, PHSException, PHSUtil, PHSIO

public class PHSSubmit
    extends PHSRequest {
  static final int COMMAND_ID = 2;
  static final byte DEFALUT_TIME[] = {
      0
  };
  private String atTime;
  private String chargeTermId;
  private String destTermId[];
  private String feeCode;
  private String feeType;
  private String fixedFee;
  static final int lenAtTime = 17;
  static final int lenChargeTermId = 21;
  static final int lenDestTermId = 21;
  static final int lenDestTermIdCount = 1;
  static final int lenFeeCode = 6;
  static final int lenFeeType = 2;
  static final int lenFixedFee = 6;
  static final int lenMsgFormat = 1;
  static final int lenMsgLength = 1;
  static final int lenMsgType = 1;
  static final int lenNeedReport = 1;
  static final int lenPriority = 1;
  static final int lenReserve = 8;
  static final int lenServiceId = 10;
  static final int lenSrcTermId = 21;
  static final int lenValidTime = 17;
  private byte msgContent[];
  private byte msgFormat;
  private byte msgLength;
  private byte msgType;
  private byte needReport;
  private byte priority;
  private String reserve;
  private String serviceId;
  private String srcTermId;
  private String validTime;

  public PHSSubmit(byte needReport, byte priority, String serviceId,
                   String feeType, String fixedFee, String feeCode,
                   byte msgFormat,
                   String srcTermId, String chargeTermId, String destTermId,
                   byte msgContent[]) throws PHSException {
    super(2);
    this.msgFormat = -1;
    validTime = new String(DEFALUT_TIME);
    atTime = new String(DEFALUT_TIME);
    setNeedReport(needReport);
    setPriority(priority);
    setServiceId(serviceId);
    setFeeType(feeType);
    setFixedFee(fixedFee);
    setFeeCode(feeCode);
    setMsgFormat(msgFormat);
    setSrcTermId(srcTermId);
    setChargeTermId(chargeTermId);
    addDestTermId(destTermId);
    setMsgContent(msgContent);
    setReserve();
  }

  public PHSSubmit(int sequenceId, byte needReport, byte priority,
                   String serviceId, String feeType, String fixedFee,
                   String feeCode,
                   byte msgFormat, String srcTermId, String chargeTermId,
                   String destTermId, String msgContent) throws PHSException {
    super(2, sequenceId);


    this.msgFormat = -1;
    validTime = new String(DEFALUT_TIME);
    atTime = new String(DEFALUT_TIME);
    setMsgType( (byte) sequenceId);
    setNeedReport(needReport);
    setPriority(priority);
    setServiceId(serviceId);
    setFeeType(feeType);
    setFixedFee(fixedFee);
    setFeeCode(feeCode);
    setMsgFormat(msgFormat);
    setSrcTermId(srcTermId);
    setChargeTermId(chargeTermId.replaceAll(",",""));
    //setDestTermId(destTermId);
    addDestTermId(destTermId);
    setMsgContent(msgContent);
    setReserve();
  }

  public PHSSubmit(byte needReport, byte priority, String serviceId,
                   String feeType, String fixedFee, String feeCode,
                   byte msgFormat,
                   String srcTermId, String chargeTermId, String destTermId,
                   String msgContent) throws PHSException {
    super(2);
    this.msgFormat = -1;
    validTime = new String(DEFALUT_TIME);
    atTime = new String(DEFALUT_TIME);
    setNeedReport(needReport);
    setPriority(priority);
    setServiceId(serviceId);
    setFeeType(feeType);
    setFixedFee(fixedFee);
    setFeeCode(feeCode);
    setMsgFormat(msgFormat);
    setSrcTermId(srcTermId);
    setChargeTermId(chargeTermId);
    addDestTermId(destTermId);
    setMsgContent(msgContent);
    setReserve();
  }

  public PHSSubmit(int sequenceId, byte needReport, byte priority,
                   String serviceId, String feeType, String fixedFee,
                   String feeCode,
                   byte msgFormat, String srcTermId, String chargeTermId,
                   String destTermId, byte msgContent[]) throws PHSException {
    super(2, sequenceId);
    this.msgFormat = -1;
    validTime = new String(DEFALUT_TIME);
    atTime = new String(DEFALUT_TIME);
    setNeedReport(needReport);
    setPriority(priority);
    setServiceId(serviceId);
    setFeeType(feeType);
    setFixedFee(fixedFee);
    setFeeCode(feeCode);
    setMsgFormat(msgFormat);
    setSrcTermId(srcTermId);
    setChargeTermId(chargeTermId);
    setDestTermId(destTermId);
    addDestTermId(destTermId);
    setMsgContent(msgContent);
    setReserve();
  }

  public void addDestTermId(String DestTermId) throws PHSException {
    this.destTermId = DestTermId.split("\\,");

    if (getDestTermIdCount() > 99) {
      throw new PHSException("addDestTermId : DestTermId is full !");
    }
    if (DestTermId == null) {
      throw new PHSException("addDestTermId : DestTermId is null !");
    }
    return;
    /*int i = getDestTermIdCount();
    String astr1[] = new String[i];
    for (int j = 0; j < i; j++) {
      astr1[j] = destTermId[j];
      System.out.println(astr1[j]);
    }
    //astr1[i] = DestTermId;
    destTermId = astr1;
        */
  }

  public void encodePacket(PHSIO cmppio) throws PHSException {
    int lenDestTermIds = 21 * getDestTermIdCount();
    int lenMsgContent = getMsgLength();
    if (lenMsgContent < 0) {
      lenMsgContent = getMsgLength() + 256;
    }
    int lenMessageBody = 105 + lenDestTermIds + 1 + lenMsgContent + 8;
    insertString(reserve, 8);
    insertBytes(msgContent);
    insertByte(msgLength);
    insertStrings(destTermId, 21);
    insertByte(getDestTermIdCount());
    insertString(chargeTermId, 21);
    insertString(srcTermId, 21);
    insertString(atTime, 17);
    insertString(validTime, 17);
    insertByte(msgFormat);
    insertString(feeCode, 6);
    insertString(fixedFee, 6);
    insertString(feeType, 2);
    insertString(serviceId, 10);
    insertByte(priority);
    insertByte(needReport);
    insertByte(msgType);

    if (getLength() != lenMessageBody) {
      throw new PHSException("encodePacket : invalid packet length !");
    }
    else {
      super.encodePacket(cmppio);
      return;
    }
  }

  public String getAtTime() {
    return atTime;
  }

  public String getChargeTermId() {
    return chargeTermId;
  }

  public String[] getDestTermId() {
    return destTermId;
  }

  public byte getDestTermIdCount() {
    return destTermId == null ? 0 : (byte) destTermId.length;
  }

  public String getFeeCode() {
    return feeCode;
  }

  public String getFeeType() {
    return feeType;
  }

  public String getFixedFee() {
    return fixedFee;
  }

  public byte[] getMsgContent() {
    return msgContent;
  }

  public byte getMsgFormat() {
    return msgFormat;
  }

  public byte getMsgLength() {
    return msgLength;
  }

  public byte getMsgType() {
    return msgType;
  }

  public byte getNeedReport() {
    return needReport;
  }

  public byte getPriority() {
    return priority;
  }

  public String getReserve() {
    return reserve;
  }

  public String getServiceId() {
    return serviceId;
  }

  public String getSrcTermId() {
    return srcTermId;
  }

  public String getValidTime() {
    return validTime;
  }

  public void setAtTime(String atTime) throws PHSException {
    if (atTime == null) {
      throw new PHSException("setAtTime : null AtTime!");
    }
    else {
      this.atTime = atTime;
      return;
    }
  }

  public void setChargeTermId(String chargeTermId) throws PHSException {
    if (chargeTermId == null) {
      throw new PHSException("setChargeTermId : null chargeTermId!");
    }
    else {
      this.chargeTermId = chargeTermId;
      return;
    }
  }

  public void setFeeCode(String FeeCode) throws PHSException {
    if (FeeCode == null) {
      throw new PHSException("setFeeCode : null FeeCode !");
    }
    else {
      feeCode = FeeCode;
      return;
    }
  }

  public void setFeeType(String feeType) throws PHSException {
    if (feeType == null) {
      throw new PHSException("setFeeType : null FeeType !");
    }
    else {
      this.feeType = feeType;
      return;
    }
  }

  public void setFixedFee(String fixedFee) throws PHSException {
    if (fixedFee == null) {
      throw new PHSException("setFixedFee : null fixedFee!");
    }
    else {
      this.fixedFee = fixedFee;
      return;
    }
  }

  public void setMsgContent(String content) throws PHSException {
    if (getMsgFormat() == -1) {
      throw new PHSException("setMsgContent : Please First set MsgFormat!");
    }
    if (content == null) {
      throw new PHSException("setMsgContent : MsgContent is null !");
    }
    if (content.length() > 160) {
      throw new PHSException("setMsgContent : MsgContent is too Long!");
    }
    if (content.length() > 140 && getMsgFormat() != 0) {
      throw new PHSException("setMsgContent : MsgContent is too Long!");
    }
    msgContent = content.getBytes();
    msgLength = (byte) content.length();
    try {
      byte temp_chn[] = null;
      if (getMsgFormat() == 15) {
        temp_chn = content.getBytes("GBK");
        msgLength = (byte) temp_chn.length;
      }
    }
    catch (Exception e) {
      System.out.println("chinese code error:" + e.toString());
    }
  }

  public void setMsgContent(byte content[]) throws PHSException {
    if (content == null || content.length <= 0) {
      throw new PHSException("setMsgContent : null MsgContent !");
    }
    if (getMsgFormat() == -1) {
      throw new PHSException("setMsgContent : Please First set MsgFormat!");
    }
    if (content.length > 140) {
      throw new PHSException("setMsgContent : MsgContent is too Long!");
    }
    else {
      msgContent = PHSUtil.copyBytes(content);
      msgLength = (byte) content.length;
      return;
    }
  }

  public void setMsgFormat(byte msgFmt) throws PHSException {
    if (msgFmt != 0 && msgFmt != 3 && msgFmt != 4 && msgFmt != 8 &&
        msgFmt != 15) {
      throw new PHSException("setMsgFmt : invalid MsgFmt !");
    }
    else {
      msgFormat = msgFmt;
      return;
    }
  }

  public void setMsgType(byte msgType) {
    this.msgType = msgType;
  }

  public void setNeedReport(byte needReport) {
    this.needReport = needReport;
  }

  public void setPriority(byte priority) throws PHSException {
    if (priority < 0 || priority > 9) {
      throw new PHSException("setPriority : invalid priority !");
    }
    else {
      this.priority = priority;
      return;
    }
  }

  private void setReserve() {
    byte abyte1[] = new byte[8];
    for (int j = 0; j < 8; j++) {
      abyte1[j] = 48;

    }
    reserve = new String(abyte1);
  }

  public void setReserve(String reserve) throws PHSException {
    if (reserve == null) {
      throw new PHSException("setReserve : null reserve!");
    }
    else {
      this.reserve = reserve;
      return;
    }
  }

  public void setServiceId(String serviceId) throws PHSException {
    if (serviceId == null) {
      throw new PHSException("setServiceId : null serviceId!");
    }
    else {
      this.serviceId = serviceId;
      return;
    }
  }

  public void setSrcTermId(String srcTermId) throws PHSException {
    if (srcTermId == null) {
      throw new PHSException("setSrcTermId : null srcTermId!");
    }
    else {
      this.srcTermId = srcTermId;
      return;
    }
  }

  public void setDestTermId(String destTermId) throws PHSException {
    if (srcTermId == null) {
      throw new PHSException("setSrcTermId : null srcTermId!");
    }
    else {
      this.destTermId = destTermId.split("\\,");
      return;
    }
  }

  public void setValidTime(String validTime) throws PHSException {
    if (validTime == null) {
      throw new PHSException("setValidTime : null ValidTime!");
    }
    else {
      this.validTime = validTime;
      return;
    }
  }

}

⌨️ 快捷键说明

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