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

📄 submit.java

📁 联通短信网关SGIP通用java源代码
💻 JAVA
字号:
package com.zzxy.shortmessage.SGIP;

import java.nio.ByteBuffer;



  public class Submit  extends SGIPAbstractStruct{
	
	public String SPNumber;          //21B SP的接入号码
	public String ChargeNumber;      //21B 付费号码,手机号码前加"86"国别标志;当且仅当群发且对用户收费时为空;如果为空,则该条短消息产生的费用由UserNumber代表的用户支付;如果为全零字符串"000000000000000000000",表示该条短消息产生的费用由SP支付。
	public byte UserCount;           //1B 接收短消息的手机数量,取值范围1至100
	public String UserNumber;        //21B 接收该短消息的手机号,该字段重复UserCount指定的次数,手机号码前加"86"国别标志…  …  …  …
	public String CorpId;            //5B 企业代码,取值范围0-99999
	public String ServiceType;       //10B 业务代码,由SP定义
	public byte FeeType;             //1B 计费类型
	public String FeeValue;          //6B 取值范围0-99999,该条短消息的收费值,单位为分,由SP定义对于包月制收费的用户,该值为月租费的值
	public String GivenValue;        //6B 取值范围0-99999,赠送用户的话费,单位为分,由SP定义,特指由SP向用户发送广告时的赠送话费
	public byte AgentFlag;           //1B 代收费标志,0:应收;1:实收
	public byte MorelatetoMTFlag;    //1B 引起MT消息的原因0-MO点播引起的第一条MT消息;1-MO点播引起的非第一条MT消息;2-非MO点播引起的MT消息;3-系统反馈引起的MT消息。
	public byte Priority;            //1B 优先级0-9从低到高,默认为0
	public String ExpireTime;        //16B 短消息寿命的终止时间,如果为空,表示使用短消息中心的缺省值。时间内容为16个字符,格式为"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默认系统为北京时间
	public String ScheduleTime;      //16B 短消息定时发送的时间,如果为空,表示立刻发送该短消息。时间内容为16个字符,格式为"yymmddhhmmsstnnp" ,其中"tnnp"取固定值"032+",即默认系统为北京时间
	public byte ReportFlag;          //1B 状态报告标记0-该条消息只有最后出错时要返回状态报告1-该条消息无论最后是否成功都要返回状态报告2-该条消息不需要返回状态报告3-该条消息仅携带包月计费信息,不下发给用户,要返回状态报告其它-保留缺省设置为0
	public byte TP_pid;              //1B GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
	public byte TP_udhi;             //1B GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
	public byte MessageCoding;       //1B 短消息的编码格式。0:纯ASCII字符串3:写卡操作4:二进制编码8:UCS2编码15: GBK编码其它参见GSM3.38第4节:SMS Data Coding Scheme
	public byte MessageType;         //1B 信息类型:0-短消息信息其它:待定
	public int MessageLength;        //4B Integer 短消息的长度
	public String MessageContent;    //Message Length  短消息的内容
	public String Reserve;           //8B 保留,扩展用

	
	public static final int STRUCT_SIZE=144;//不含短消息内容的长度
	
	public Submit() {
		Head head = new Head();
		head.Msglen=Head.STRUCT_SIZE+this.STRUCT_SIZE;
		head.Cmd_id=SGIP.SGIP_SUBMIT;
		this.setHead(head);
	}
	
	@Override
	public ByteBuffer getBuffer() {
		ByteBuffer buffer = ByteBuffer.allocate(STRUCT_SIZE+MessageLength);
		buffer.order(byteOrder);
		
		buffer.put(SPNumber.getBytes());
		for (int i = SPNumber.getBytes().length; i < 21; i++) {
			buffer.put((byte)0);
		}
		buffer.put(ChargeNumber.getBytes());
		for (int i = ChargeNumber.getBytes().length; i < 21; i++) {
			buffer.put((byte)0);
		}
		
		buffer.put(UserCount);
		
		buffer.put(UserNumber.getBytes());
		for (int i = UserNumber.getBytes().length; i < 21; i++) {
			buffer.put((byte)0);
		}
		buffer.put(CorpId.getBytes());
		for (int i = CorpId.getBytes().length; i < 5; i++) {
			buffer.put((byte)0);
		}
		buffer.put(ServiceType.getBytes());
		for (int i = ServiceType.getBytes().length; i < 10; i++) {
			buffer.put((byte)0);
		}
		
		buffer.put(FeeType);
		
		buffer.put(FeeValue.getBytes());
		for (int i = FeeValue.getBytes().length; i < 6; i++) {
			buffer.put((byte)0);
		}
		buffer.put(GivenValue.getBytes());
		for (int i = GivenValue.getBytes().length; i < 6; i++) {
			buffer.put((byte)0);
		}
		
		buffer.put(AgentFlag);
		buffer.put(MorelatetoMTFlag);
		buffer.put(Priority);
		
		buffer.put(ExpireTime.getBytes());
		for (int i = ExpireTime.getBytes().length; i < 16; i++) {
			buffer.put((byte)0);
		}
		buffer.put(ScheduleTime.getBytes());
		for (int i = ScheduleTime.getBytes().length; i < 16; i++) {
			buffer.put((byte)0);
		}
		
		buffer.put(ReportFlag);
		buffer.put(TP_pid);
		buffer.put(TP_udhi);
		buffer.put(MessageCoding);
		buffer.put(MessageType);
		buffer.putInt(MessageLength);
		
		try{
			buffer.put(MessageContent.getBytes("GB2312"));
		} catch (Exception e) {
			e.printStackTrace();
		}
		for (int i = 0; i < 8; i++) {
			buffer.put((byte)0);
		}

		buffer.flip();
		return buffer;
	}
	
	@Override
	public void setBuffer(ByteBuffer buffer) throws Exception {

	}


  }

⌨️ 快捷键说明

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