基于联通SGIP协议的短信发送代码
- 格式:doc
- 大小:33.50 KB
- 文档页数:3
SGIP、SMGP长短信发送问题⼩结长短信发送问题。
1.将信息长度拆开发送。
2.为了解决长短信拆分发送,在⼿机终端,收到的顺序错乱,所以在每⼀段短信发送完成后,延时5秒,这样在⼿机终端客户收到的信息,就会按照拆分的顺序发送。
//信息总长度int sumlength = aMessage.length();int sta = 0; // 开始截取位置int end = 50; // 每次截取长度String msg = null; // 临时短信内容int mNumber; // 分割条数mNumber = sumlength / end + 1;// 将短信拆分到List中每50字⼀条发送if(sumlength>50){for (int i = 1; i < mNumber + 1; i++) {//最后⼀条截取⽅式if (i == mNumber) {msg = aMessage.substring(sta, sumlength);} else {msg = aMessage.substring(sta, end * i);}//发送的消息进⾏转码GB2312 /iso-10646-ucs-2byte[] MessageContent =msg.getBytes("GB2312");tResult=sendmessage(MessageContent,aPhoneNum);Thread.sleep(5000);sta = i * end;}}长短信6字节协议在⽹上也没找到具体的代码⽚段,如果能有更好的解决⽅法请⼤家积极参与,与评论。
1.1 SGIP协议登录错误码(bind响应)
1.2 网关错误码(report 状态是1)
1.3 网关错误码(report 状态是2)
1.4 SPMS常用错误代码
101 /* 定购业务失败 */
102 /* 退定业务失败 */
103 /* 非法SP */
104 /* 非法用户 */
105 /* 用户未定购此项业务,鉴权失败 */
106 /* 非法费用,鉴权失败 */
107 /* 重复包月话单 */
108 /* 非法指令*/
109 /* 非法业务代码*/
110 /* 已定购该业务 */
111 /*--需要用户回复的定制信息--*/
112 /*--需要用户回复的定制信息--*/
113 /*--需要用户回复的定制信息--*/
114 /*--用户回复的定制信息不存在--*/
115 /*--SP回复的定制信息不存在--*/
116 /* 用户未点播此项业务,鉴权失败 */
117 /* 等待用户作二次确认*/
118 /* 等待sp作定制确认*/
119 /* sp定制确认返回ERROR定制不成功要求复位*/ 121 /* 下行对应多个目的号码*/
199 /* SPMS 修正了SUBMIT */
122 /* 非法SERVICE */
123 /* 非法SERVICE */。
编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载sgip协议,最新甲方:___________________乙方:___________________日期:___________________sgip协议,最新篇一:中国联通sgip协议(v1.2)中国联合通信公司短消息网关系统接口协议(sgip)版本1.2中国联合通信公司二零零一年十月目录1概述.......................... (1)1.1协议说明.......................... (1) (1)1.3参考资料.......................... (1)1.4术语表.......................... (1)2系统体系结构.......................... (3)2.1消息从本地smsc到本地sp ................................................ .. (4)2.2消息从本地sp到本地smsc .............................................. (4)sp ................................................ .. (4)2.4消息从本地sp到异地smsc .............................................. . (4)2.5路由选择.......................... (4)3通信流程.......................... (6)3.1专用sgip方式.......................... (6)3.2通用http方式.......................... (6)3.3通信节点编号规则............................73.5通信的安全性............................83.6用户鉴权.......................... (8)3.6.1被叫方付费.......................... . (8)3.6.2sp 付费.......................... (8)3.6.3第三方付费..........................3.7sp与smg的通信.......................... .. (9)3.7.1 通用http方式.......................... .. (9)3.7.1.1 从sp 至1J smg 的命令.......................... . (10)3.7.1.2 从smg到sp的命令.......................... . (10)3.7.2专用sgip方式.......................... (10)3.7.2.1 通信初始化.......................... (10)3.7.2.2 通信过程.......................... (11)3.7.2.3 通信结 (12)3.7.2.4 故障处理.......................... . (12)3.7.2.5 从sp 至V smg 的消息.......................... . (13)3.7.2.6 从smg到sp的消息.......................... . (13)3.8smg与smg之间的通信.......................... .. (14)3.8.1通信初始化.......................... . (14)3.8.2通信过程..........................3.8.3通信结.153.8.4故障处理...........................153.8.5两个smg之间的消息.......................... .. (15)3.9smg与gns之间的通信.......................... .. (15)3.9.1通信初始化.......................... .. (15)3.9.2通信过程...........................163.9.3通信结束.......................... .163.9.4故障处理...........................163.9.5 从smg到gns的消息.......................... .. (16)3.9.6 从gns到smg的消息.......................... .. (17)4消息定义.......................... (18)4.1基于通用http的消息定义.......................... .. (18)4.1.1submit 操作..........................4.1.1.1submit 命令的请求内 (18)4.1.1.2submit 命令的应答内容.......................... .. (19)4.1.2deliver 操作.......................... .. (20)4.1.2.1deliver 命令的请求内容.......................... .. (20)4.1.2.2deliver 命令的应答内容.......................... .. (20)4.1.3Report 操作.......................... .. (21)4.1.3.1Report 命令的请求内容.......................... .. (21)4.1.3.2Report 命令的应答内 (21)4.1.4userRpt 操作.. (22)4.1.4.1userRpt 命令的请求内容.. (22)4.1.4.2userRpt 命令的应答内容.. (22)4.1.5trace 操作.. (2)24.1.5.1trace 命令的请求内容.. (22)4.1.5.2trace 命令的应答内容.. (23)4.2基于专用sgip的消息定 (23)4.2.1数据类型...........................234.2.2消息头的格式.......................... . (24)4.2.3消息体的格式.......................... . (24)4.2.3.1bind 操作.......................... . (24)4.2.3.2unbind 操作.......................... . (25)4.2.3.3submit 操作.......................... . (25)4.2.3.4deliver 操 (28)4.2.3.5Report 操作.......................... . (29)4.2.3.6addsp 操作.......................... . (29)4.2.3.7modifysp 操作.......................... .. (30)4.2.3.8deletesp 操作.......................... .. (31)4.2.3.9queryRoute 操作.......................... (31)4.2.3.10addteleseg 操作.......................... (32)4.2.3.11modifyteleseg 操作..........................4.2.3.12deleteteleseg 操作.......................... . (34)4.2.3.13addsmg 操作.......................... (34)4.2.3.14modifysmg 操作.......................... .. (35)4.2.3.15deletesmg 操作.......................... . (35)4.3鉴权消息定义..........................364.3.1checkuser 命令的语法.......................... (36)4.3.2checkuser_Resp 应答的语法..........................4.3.3userRpt 命令的语法.......................... .. (36)4.3.4userRpt_Resp 应答的语法.......................... .. (36)4.4测试消息定义..........................374.4.1trace 命令的语法.......................... . (37)4.4.2trace_Resp 应答的语法.......................... (37)5常H定义.......................... (38)5.1消息id定..385.2错误码定义.......................... (38)5.3计费类另U定义..........................395.4RepoRt状态与短消息状态的映射.......................... . (39)附录1:全网路由表的格式小范.......................... .. (40)附录2:本地路由表的格式示范.......................... .. (41)附录3:http承载方式示范.......................... (42)1概述1.1协议说明本协议是smg和sp之间、smg和gns之间、以及smg和smg之间的接口协议,简称sgip。
短信网关SP端应用程序接口使用说明---- SXIT_ISMG_SGIP_API一、使用说明本接口遵循SGIPv1.2 协议标准,以提供消息发送和接收函数的方式, 向ICP提供同联通网关进行信息交换的实现途径.客户可以依据具体需要,利用所提供的函数实现不同的连接方式(长连接和短连接)以及何时自动建立和中断连接, 除此之外, API 作为应用的接口,对SGIP描述的其它功能,象流量控制重发机制和并发处理都不预干预,需要应用程序处理3、向网关提交信息(SGIP_Submit)◆函数功能向网关提交短信◆返回值=0 标识成功<0 标识发送失败◆参数说明:◆注意:1、如果建立好连接后一段时间没有发送消息,网关可能会关闭连接,2、SGIP_Submit返回ERROR_SOCKET_CLOSE ,这时,必须重新建立连接并发送消息3、p_seq1,p_seq2,p_seq3是函数返回的序列号,可与状态报告中的序列号对应4、主动与网关断开连接(SGIP_Disconnect)◆函数功能主动和网关断开链接2、状态报告五、常见问题解答1、为何联接到网关时网关回复ERROR_SOCKET_READ错误码?答:造成此问题的原因很可能是你的IP同局方管理人员设置的IP不一致。
请与局方管理人员核对数据。
2、为何向网关提交短信时会返回ERROR_FEE_CODE错误码?答:深讯信科网关要求资费类别为按条计费时资费代码不能为0;3、接收MO消息时,为何进程会僵死?答:造成此现象的原因很可能是api没有得到网关发来的MO或者状态报告包,处于阻塞等待状态。
4、为何和网关建立的MT链路经常会断开?答:造成此问题的原因很可能是提交速度过快,以至超过网络的传输速度从而造成了网络阻塞。
六、Sp与网关间交易的基本流程。
联通SGIP开发注意事项联通ip:220.200.5.235联通port:8801联通企业代码:99050标准SGIP协议进⾏开发Tp_pidTp_udhiiPriority这些参数分别填写什么0,0,0FeeType填2,AgentFlag填0chargenumber就21个0现在service_typefeevalue givenvalue分别填写HELP、0、0在CMPP协议⾥Msg_src⼜称SP_Id,就是SGIP协议⾥的CorpID填写99050Spnumber填写10655对应接⼊号就是对联通上⾏给你的消息,你回给我的resp中的消息序列号要和联通上⾏的消息序列号⼀致现在是不⼀致的,导致联通⽹关认为你没有收到上⾏,所以会重复发送其他客户典型出现的问题:DATA_MSGHeadMessage_Length--/DWORD : 64Command_Id--/Hex4 : 0x00000005Sequence_Number--/3*DWORD : 755 311120057 316481 SGIP_REPORTSubmit_Seq_Number--/3*DWORD : 3000099050 311115841 88Report_Type--BYTE : 0User_Number--char : 8613120429497State--BYTE : 0Error_Code--BYTE : 0Reserve--char :上⾯这个是我送给你们的report的包内容DATA_MSGHeadMessage_Length--/DWORD : 29Command_Id--/Hex4 : 0x80000005Sequence_Number--/3*DWORD : 3000099050 311115841 88 SGIP_REPORT_RESPResult--BYTE : 0Reserve--char :这个是你们给我回的resp你给我的head中的Sequence_Number--/3*DWORD : 3000099050 311115841 88 要和我DATA_MSG HeadMessage_Length--/DWORD : 64Command_Id--/Hex4 : 0x00000005Sequence_Number--/3*DWORD : 755 311120057 316481这两个中的Sequence_Number 这个要⼀致你们程序,写成和Submit_Seq_Number⼀致了,这个不⾏DATA_MSGHeadMessage_Length--/DWORD : 64Command_Id--/Hex4 : 0x00000005Sequence_Number--/3*DWORD : 755 311151406 326671 SGIP_REPORTSubmit_Seq_Number--/3*DWORD : 3000099050 311151414 1Report_Type--BYTE : 0User_Number--char : 8613249435482State--BYTE : 0Error_Code--BYTE : 0Reserve--char :DATA_MSGHeadMessage_Length--/DWORD : 29Command_Id--/Hex4 : 0x80000005Sequence_Number--/3*DWORD : 755 311151406 326671SGIP_REPORT_RESPResult--BYTE : 0Reserve--char :建议还是在⼀定时间段内⽐如30秒,没有submit后再unbind,unbind后马上bind 以下是正确的的案例:以下是错误的案例:错误做法:这个是联通连接你们服务器的,你们不⽤unbind的,unbind也是联通这⾥发起你这样unbind,会造成信息丢失的联通有消息发过去到你们服务器,会bind,然后送完消息就unbind正确做法:SP没有给联通report回resp错误案例:正确的做法:错误的做法:对MO_Relate_To_MT_Flag 应该填写为2正确做法:以前接别的联通通道时上⾏会话都只有⼀条连接通讯这边华为的联通处理时,上⾏连接可能存在多条,这样我们程序在第⼀条连接上处理,后⾯的连接就堵上了,等到处理后⾯的连接时,⼜超时了这样就出现了我们没有读到联通给我们的上⾏那条连接就失效了现在处理⽅法必须更改成:第⼀条处理时,如果没数据就切换处理后⾯的112的问题是:我bind以后,你给我resp了,然后有段时间没有数据,但是还没超过我的超时设置,所以我不会unbind,还是保持数据链路这时候你们主动unbind了,⽽且很频繁,就导致,我这⾥每次都bind,送数据都bind太频繁了流程bind submit unbind closesocket 没错吗。
QB/CU 25-2003中国联通短消息网关联网协议(SGIP V1.0)中国联通公司2003年2月发布前言近年来,短消息业务发展迅速。
目前联通大部分分公司已经设立短消息中心并已投入使用,但由于缺少业务种类,加上联通总部对此缺乏统一规划,长期以来经济效益不明显,增值业务开展较少;现有的网络架构、人员、管理、技术等资源在支持短消息数据业务快速发展以形成规模效益及在新的技术平台上开展无线数据业务等方面已成为主要瓶颈。
为了统一短消息业务应用提供商(SP)的接入,大力发展中国联通短消息服务,联通公司以现有短消息网络资源为基础构建短消息网关系统,对所有SP的接入接口、短消息网关之间的接口等进行统一的规范。
本协议主要是参考了国际上相关技术规定以及我国移动通信网络的实际业务和功能需要而制订的。
主要内容包括:系统体系结构,通信流程,消息定义,常量定义等。
本规范由中国联合通信有限公司技术部提出并归口本规范起草单位:中讯邮电咨询设计院本规范主要起草人:张范李海燕康建雄左丽李明铎张岩许建宏本规范的修改和解释权属于中国联通公司目录1.总则 (1)2.系统体系结构 (2)2.1 消息从本地SMSC到本地SP (3)2.2 消息从本地SP到本地SMSC (3)2.3 消息从本地SMSC到异地SP (3)2.4 消息从本地SP到异地SMSC (3)2.5 路由选择 (4)3.通信流程 (5)3.1专用SGIP方式 (5)3.2通用HTTP方式 (5)3.3通信节点编号规则 (6)3.4序列号的定义 (6)3.5通信的安全性 (7)3.6用户鉴权 (7)3.6.1被叫方付费 (7)3.6.2SP付费 (7)3.6.3第三方付费 (8)3.7SP与SMG的通信 (8)3.7.1通用HTTP方式 (8)3.7.1.1从SP到SMG的命令 (9)3.7.1.2从SMG到SP的命令 (9)3.7.2专用SGIP方式 (9)3.7.2.1通信初始化 (10)3.7.2.2通信过程 (10)3.7.2.3通信结束 (11)3.7.2.4故障处理 (12)3.7.2.5从SP到SMG的消息 (13)3.7.2.6从SMG到SP的消息 (13)3.8SMG与SMG之间的通信 (13)3.8.1通信初始化 (14)3.8.2通信过程 (14)3.8.3通信结束 (14)3.8.4故障处理 (14)3.8.5两个SMG之间的消息 (14)3.9SMG与GNS之间的通信 (15)3.9.1通信初始化 (15)3.9.2通信过程 (15)3.9.3通信结束 (15)3.9.4故障处理 (15)3.9.5从SMG到GNS的消息 (16)3.9.6从GNS到SMG的消息 (16)4.消息定义 (17)4.1基于通用HTTP的消息定义 (17)4.1.1Submit操作 (17)4.1.1.1Submit命令的请求内容 (17)4.1.1.2Submit命令的应答内容 (18)4.1.2Deliver操作 (19)4.1.2.1Deliver命令的请求内容 (19)4.1.2.2Deliver命令的应答内容 (19)4.1.3Report操作 (20)4.1.3.1Report命令的请求内容 (20)4.1.3.2Report命令的应答内容 (20)4.1.4UserRpt操作 (20)4.1.4.1UserRpt命令的请求内容 (21)4.1.4.2UserRpt命令的应答内容 (21)4.1.5Trace操作 (21)4.1.5.1Trace命令的请求内容 (21)4.1.5.2Trace命令的应答内容 (21)4.2基于专用SGIP的消息定义 (22)4.2.1数据类型 (22)4.2.2消息头的格式 (22)4.2.3消息体的格式 (23)4.2.3.1Bind操作 (23)4.2.3.2Unbind操作 (24)4.2.3.3Submit操作 (24)4.2.3.4Deliver操作 (26)4.2.3.5Report操作 (27)4.2.3.6AddSP操作 (28)4.2.3.7ModifySP操作 (28)4.2.3.8DeleteSP操作 (29)4.2.3.9QueryRoute操作 (30)4.2.3.10AddTeleSeg操作 (31)4.2.3.11ModifyTeleSeg操作 (31)4.2.3.12DeleteTeleSeg操作 (32)4.2.3.13AddSMG操作 (33)4.2.3.14ModifySMG操作 (33)4.2.3.15DeleteSMG操作 (34)4.3鉴权消息定义 (34)4.3.1CheckUser命令的语法 (35)4.3.2CheckUser_Resp应答的语法 (35)4.3.3UserRpt命令的语法 (35)4.3.4UserRpt_Resp应答的语法 (35)4.4测试消息定义 (35)4.4.1Trace命令的语法 (36)4.4.2Trace_Resp应答的语法 (36)5.常量定义 (37)5.1消息ID定义 (37)5.2错误码定义 (37)5.3计费类别定义 (38)5.4R EPORT 状态与短消息状态的映射 (38)附录1 缩略语 (39)附录2 全网路由表的格式示范 (40)附录3 本地路由表的格式示范 (41)附录4 HTTP承载方式示范 (42)附录5 引用标准 (44)1.总则本协议是SMG和SP之间、SMG和GNS之间、以及SMG和SMG之间的接口协议,简称SGIP。
标题/Title: SGIP API(JA V A) For SP 一. 目录二. 概述本文提供的API支持多个SP通过英斯克短信网关iDAP接入短信中心,向终端用户发送短消息。
SP 的应用程序需要遵循联通的SGIP1.1协议,调用iDAP的API实现短信发送和点播功能。
作为ISMG厂商,英斯克提供接入的Java API,本文解释了API中JA V A API的用法。
三. API文件说明提供给SP使用的API包名称为spApi.jar,它共包括以下类:SGIP_Command.class,Seq.class,MsgHead.class,Bind.class BindResp.class,Unbind.class,UnbindResp.class Submit.class,SubmitResp.class,Deliver.class,DeliverResp.class,Report.class,ReportResp.class,在使用此API 前,请正确地将包设置到CLASSPA TH环境变量中。
1.类SGIP_Command说明1.1.1构造函数1)public SGIP_Command()作用:构造函数,创建一个空的SGIP_Command对象1.1.2方法2)public SGIP_Command read(InputStream in)作用:接收任何来自网关的命令。
参数:InputStream in 输入流异常: IOException3)public int getCommandID()作用:获得读取的命令的代码返回值:命令代码4)示例:(具体示例见后面的完整程序)//接收sgip的消息…Socket so=null;OutputStream out=null;InputStream input=null;so=new Socket("192.168.0.30",8801);out=new DataOutputStream(so.getOutputStream());input = new DataInputStream(so.getInputStream());SGIP_Command sgip=new SGIP_Command();//创建一个空的SGIP_Command对象SGIP_Command tmp=null;…tmp=sgip.read(input);// 接收sgip的消息…if(sgip.getCommandID()==SGIP_Command.ID_SGIP_BIND_RESP){resp=(BindResp)tmp;//强制转换resp.readbody();//解包System.out.println(tmp.getSeqno_1());System.out.println(tmp.getSeqno_2());System.out.println(tmp.getSeqno_3());System.out.println(resp.GetResult());}…2.类Bind (该类由SGIP_Command类扩展而来)1.1.3构造函数1) public Bind(int NodeID)作用:构造函数参数:NodeID节点编号,300000+CP_ID2) public Bind(int NodeID,int LoginType,String LoginName,String LoginPassword)作用:构造函数参数:NodeID, 节点编号LoginType,登录类型。
通过短信网关发送Wappush(包括超长Wappush)2010年01月16日星期六 09:55Wappush可以通过短信行业网关发送出去(通过submit消息体),移动和联通都是一样,至于电信的协议没试过,不过应该也一样,因为都是参照标准协议改编的。
我参考了网上N多文章后才总结出来的一种规则,而且实际测试过发到手机,应该说比较靠谱,写出来节省一下大家时间。
我介绍的仅仅是一种能发送出去的方法,而且不是只有这种方法才能发送,如果你要深究原理,需参考GSM协议的相关章节。
具体规则如下:1首先要设置字段:setTpPid((byte) 0);setTpUdui((byte) 1);setMsgFmt((byte) 4);2修改短信内容体的字段。
一个Wappush包发出去的时候(这里的包,仅仅是指短信协议里面的内容字段),是由WDP+WSP+SI三个部分组成。
WDP由固定的一串编码加一个refrence number + 总包数 + 当前包数。
refrence number 应该是同一条Wappush唯一的标识(如果拆分成了多条,这几条的refNO应该相同),当然当你发送了128条后,肯定重复了,总包数指的是你这条Wappush分成几个包发送出去,当前包数顾名思义指的是当前这个包是第几条,如果不需要拆分的Wappush这两个字段当然均填1。
WDP = { 0x0B, 0x05, 0x04, 0x0B, (byte) 0x84, 0x23, (byte) 0xF0, 0x00, 0x03 } + refNO + total + currIndex;WSP 由固定的3个字节的编码组成。
WSP = { 0x06, 0x01, (byte) 0xAE }SI里面包括了一些标记和推送链接以及内容。
SI = TransactionId(又是一个ID,每条Wappush应该不同,拆分时这个字段只会出现一次,详见后面描述) + { 0x02, 0x05, 0x6A, 0x00, 0x45, (byte) 0xC6, 0x08, 0x0C, 0x03 } + urlBytes(推送链接的UTF-8编码数组) + { 0x00, 0x01, 0x03 (这一串标记地址结束)} + contentBytes(推送内容的UTF-8编码数组) + { 0x00, 0x01, 0x01(这一串标记整个Wappush的结束) }好了,你的消息体如果按上面规则(WDP+WSP+SI)组合起来的长度小于等于140(短信内容体字段要求),直接发送出去就OK了。
基于联通SGIP协议的短信发送代码
public class Send {
// private static Logger log = LogManager.getLogger("send");
private static String SPNumber = "xxxx";//接入号码
private static String ChargeNumber = "000000000000000000000"; // 计费号码,我们是白名单
private static String ServiceType = "xxxxx";//服务类型
private static String host = "xxx.xxx.xxx.xxx"; // 主机名,网关IP
private static int port = 8881; // 端口号,这里特别注意下,接入协议中写的是8804,害得我调了很久,后来才知道改了,所以,这个在接入前,建议与网关人员确定
private static String CorpId = "xxxxx"; // 企业代码
private static String login_Name = "xxxxxxxx"; // 登陆名
private static String login_PassWord = "xxxxxxx"; // 登陆密码
public static void main(String[] args) throws UnsupportedEncodingException {
int srcnode =new BigInteger("30000+企业代码").intValue(); //源节点编号,这一步非常重要,华为包中,该字段类型为int,而接入协议中要求在企业代码前加上30000,这样就超过了int的取值范围,所以需要用BigInteger转一下就可以了
Args argstr = new Args();
argstr.set("host", host);
argstr.set("port", port);
argstr.set("transaction-timeout", 10); // 操作超时时间(单位:秒)
argstr.set("read-timeout", 15); // 物理连接读操作超时时间(单位:秒)
argstr.set("source-addr", srcnode); // SP…ID(最大为六位字符)
argstr.set("login-name", login_Name);
argstr.set("login-pass", login_PassWord);
argstr.set("debug", "true");
// 连接登陆zhuxiao5
SGIPSMProxy sgipsmp = new SGIPSMProxy(argstr); // 这里
try {
boolean reslut = sgipsmp.connect(login_Name, login_PassWord); // 登陆得到true和false
System.out.println("reslut:::::::" + reslut);
if (reslut) {
System.out.println("连接成功...........");
} else {
System.out.println("连接失败(用户名或密码错误)...........");
return;
}
} catch (Exception ex) {
System.out.println("网络异常...........");
ex.printStackTrace();
return;
}
String[] UserNumber = { "86156xxxxxxxx","86156xxxxxxxx"};//接收短信的手机号码,前边要加上86
String content = "短信测试内容";
byte[] MessageContent = content.getBytes("GB2312");
try {
// 下发短息
SGIPSubmitMessage sgipsubmit = new SGIPSubmitMessage(
SPNumber, // SP的接入号码
ChargeNumber, // 付费号码string
UserNumber, // 接收该短消息的手机号,最多100个号码string[]
CorpId, // 企业代码,取值范围为0~99999 string
ServiceType, // 业务代码,由SP定义stirng
03, // 计费类型int
"0", // 该条短消息的收费值stirng
"0", // 赠送用户的话费string
0, // 代收费标志0:应收1:实收int
0, // 引起MT消息的原因int
06, // 优先级0~9从低到高,默认为0 int
null, // 短消息寿命的终止时间date
null, // 短消息定时发送的时间date
1, // 状态报告标记int
0, // GSM协议类型int
0, // GSM协议类型int
15, // 短消息的编码格式int
0, // 信息类型int
MessageContent.length, // 短消息内容长度int
MessageContent, // 短消息的内容btye[]
"0" // 保留,扩展用string
);
// 收到的响应消息转换成rep
int status = ProcessSubmitRep(sgipsmp.send(sgipsubmit));
System.out.println(status);
if (status == 0) {
System.out.println("消息发送成功..........");
} else {
System.out.println("消息发送失败..........");
}
} catch (Exception ex) {
// log.error("发送消息异常:"+ex.getMessage(),ex);
ex.printStackTrace();
}
}
private static int ProcessSubmitRep(SGIPMessage msg) {
// 收到的响应消息转换成repMsg
SGIPSubmitRepMessage repMsg = (SGIPSubmitRepMessage) msg;
System.out.println(repMsg.getSrcNodeId());
System.out.println("status:::::::" + repMsg.getResult());
if (repMsg != null && repMsg.getResult() == 0) {
System.out.println("发送成功:::");
}
return repMsg.getResult();
}
}。