📄 phssubmit.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 + -