📄 cmpp_connect.java
字号:
package com.sxforever.protocol.cmpp30;
import com.sxforever.util.*;
import com.sxforever.structure.*;
/**
* <p>Title: sxforever</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: Hengyuan_COM</p>
*
* @author shanying
* @version 1.0
*/
public class CMPP_CONNECT implements java.io.Serializable {
private int Total_Length; //消息总长度(含消息头及消息体)
private int Command_Id; //命令或响应类型
private int Sequence_Id = 0; //消息流水号,顺序累加,步长为1,循环使用(一对请求和应答消息的流水号必须相同)
public static int estate=0;
Command_Id cmd=new Command_Id();
public CMPP_CONNECT() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private int setSequence_Id(){
return this.Sequence_Id=Sequence_Id++;
}
private byte[] getMD5(String mSource_Addr,
String mSecret, int sTimestamp) {
ProtocolBuffer pb = ProtocolBuffer.create(6 + 9 + 4 + 4);
pb.appendBytes(mSource_Addr.getBytes());
pb.appendBynary0(9);
pb.appendBytes(mSecret.getBytes());
pb.appendInt(sTimestamp);
MD5 md5 = new MD5();
byte[] bs = pb.toBytes();
byte[] auth = md5.getMD5ofBytes(bs, bs.length);
return auth;
}
public byte[] set_conn_info(String mSource_Addr,
String mSecret) {//连接
ProtocolBuffer pb = ProtocolBuffer.create(39);
pb.appendBytes(setMessHead(39,cmd.Set_COMMAND_CMPP_CONNECT()));
pb.appendBytes(mSource_Addr.getBytes());
int Timestamp = Integer.parseInt(TypesTools.getNowDate10());
byte Version=0x30;
pb.appendBytes(getMD5(mSource_Addr, mSecret, Timestamp));
pb.appendByte(Version);
pb.appendInt(Timestamp);
return pb.toBytes();
}
public byte[] set_sunmit(Submit submit)throws Exception{
int a=0;
byte[] b=submit.Str_MSG.getBytes("GB2312");
a = b.length;
ProtocolBuffer pb=ProtocolBuffer.create(151+submit.By_USERCOUNT*32+a+12);
pb.appendBytes(setMessHead(151+submit.By_USERCOUNT*32+a+12,cmd.Set_COMMAND_CMPP_SUBMIT()));
pb.appendAsciiO(8);
pb.appendByte(submit.By_PKTOTAL);
pb.appendByte(submit.By_PKNUMBER);
pb.appendByte(submit.By_REPORTFLAG);
pb.appendByte(submit.By_MSGLEVEL);
pb.appendString(submit.Str_SERVICEID,10);
pb.appendByte(submit.By_FEEUSERTYPE);
//pb.appendString(submit.Str_FEENUM,32);
String[] Dest_terminal = submit.Str_FEENUM.split(",");
for (int i = 0; i < Dest_terminal.length; i++){
if(Dest_terminal[i].startsWith("+86"))
pb.appendString(Dest_terminal[i],32);
else
pb.appendString("+86"+Dest_terminal[i],32);
}
pb.appendByte(submit.By_FEENUMTYPE);
pb.appendAsciiO(2);
pb.appendByte(submit.By_MSGFMT);
pb.appendString(submit.Str_CORPID,6);
pb.appendString("0"+submit.By_FEETYPE,2);
pb.appendString(submit.Str_FEE,6);
pb.appendString(submit.Str_VALIDTIME,17);
pb.appendString(submit.Str_ATTIME,17);
pb.appendString(submit.Str_SPNUM,21);
pb.appendByte(submit.By_USERCOUNT);
//pb.appendString(submit.Str_USERNUM,submit.By_USERCOUNT*32);
Dest_terminal = submit.Str_USERNUM.split(",");
for (int i = 0; i < Dest_terminal.length; i++){
if(Dest_terminal[i].startsWith("+86"))
pb.appendString(Dest_terminal[i],32);
else
pb.appendString("+86"+Dest_terminal[i],32);
}
pb.appendByte(submit.By_USERNUMTYPE);
pb.appendByte((byte)submit.Int_MSGLENGTH);
pb.appendBytes(b);
pb.appendString(submit.Str_LINKID,20);
submit.Str_MSGID=Sequence_Id+"";
//存入数据库
return pb.toBytes();
}
public byte[] set_sunmit(byte Pk_total, byte Pk_number,
byte Registered_Delivery, byte Msg_level,
String Service_Id, byte Fee_UserType,
String Fee_terminal_ID, byte Fee_terminal_type,
byte Msg_Fmt, String Msg_src, String FeeType,
String FeeCode, String Valli_Time, String At_time,
String Src_Id, byte DestUsr_tl,
String Dest_terminal_Id, byte Dest_terminal_type,
byte Msg_Length, String Msg_Content, String LinkID)throws Exception{//发送信息
int a;
byte[] b=Msg_Content.getBytes("gb2312");
a=b.length;
ProtocolBuffer pb=ProtocolBuffer.create(151+DestUsr_tl*32+a+12);
pb.appendBytes(setMessHead(151+DestUsr_tl*32+a+12,cmd.Set_COMMAND_CMPP_SUBMIT()));
pb.appendAsciiO(8);
pb.appendByte(Pk_total);
pb.appendByte(Pk_number);
pb.appendByte(Registered_Delivery);
pb.appendByte(Msg_level);
pb.appendString(Service_Id);
pb.appendByte(Fee_UserType);
pb.appendString(Fee_terminal_ID,32);
pb.appendByte(Fee_terminal_type);
pb.appendAsciiO(2);
pb.appendByte(Msg_Fmt);
pb.appendString(Msg_src);
pb.appendString(FeeType);
pb.appendString(FeeCode);
pb.appendString(Valli_Time);
pb.appendString(At_time);
pb.appendString(Src_Id);
pb.appendByte(Msg_level);
String[] Dest_terminal = Dest_terminal_Id.split(",");
for (int i = 0; i < Dest_terminal.length; i++){
if(Dest_terminal[i].startsWith("+86"))
pb.appendString(Dest_terminal[i],32);
else
pb.appendString("+86"+Dest_terminal[i],32);
}
pb.appendByte(Dest_terminal_type);
pb.appendByte(Msg_Length);
pb.appendBytes(b);
pb.appendString(LinkID);
return pb.toBytes();
}
public byte[] setMessHead(int length, int mCommand_Id) {//包头
ProtocolBuffer pb = ProtocolBuffer.create(12);
pb.appendInt(length);
pb.appendInt(mCommand_Id);
//this.Sequence_Id++;
pb.appendInt(setSequence_Id());
estate++;
return pb.toBytes();
}
public byte[] setMessHead(int length, int mCommand_Id,byte[] seq_id) {//包头
ProtocolBuffer pb = ProtocolBuffer.create(12);
pb.appendInt(length);
pb.appendInt(mCommand_Id);
//this.Sequence_Id++;
pb.appendBytes(seq_id);
estate++;
return pb.toBytes();
}
public byte[] set_Deliver_resp(MDELIVER dlv) {//消息回应
ProtocolBuffer pb = ProtocolBuffer.create(24);
pb.appendBytes(setMessHead(24,cmd.Set_COMMAND_CMPP_DELIVER_RESP(),dlv.Seq_ID));
pb.appendBytes(dlv.By_MSGID);
pb.appendInt(0);
return pb.toBytes();
}
public byte[] set_Deliver_resp(byte[] seq_id,byte[] Msg_Id, int Result) {//消息回应
ProtocolBuffer pb = ProtocolBuffer.create(24);
pb.appendBytes(setMessHead(24,cmd.Set_COMMAND_CMPP_DELIVER_RESP(),seq_id));
pb.appendBytes(Msg_Id);
pb.appendInt(Result);
return pb.toBytes();
}
public byte[] set_Query(String Time, byte Query_type, String Query_Code) {//发送查询
ProtocolBuffer pb = ProtocolBuffer.create(39);
pb.appendBytes(setMessHead(39,cmd.Set_COMMAND_CMPP_QUERY()));
pb.appendString(Time,8);
pb.appendByte(Query_type);
pb.appendString(Query_Code,10);
pb.appendAsciiO(8);
return pb.toBytes();
}
public byte[] set_Cancet(byte[] Msg_Id) {//发送删除
ProtocolBuffer pb = ProtocolBuffer.create(20);
pb.appendBytes(setMessHead(20,cmd.Set_COMMAND_CMPP_CANCEL()));
pb.appendBytes(Msg_Id);
return pb.toBytes();
}
public byte[] set_Active_Test() {//链路检测
ProtocolBuffer pb = ProtocolBuffer.create(12);
pb.appendBytes(setMessHead(12,cmd.Set_COMMAND_CMPP_ACTIVE_TEST()));
return pb.toBytes();
}
private void jbInit() throws Exception {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -