首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

中国联通SP业务接入开发小结(SGIP1.2 协议)

2012-10-25 
中国联通SP业务接入开发总结(SGIP1.2 协议) 当短信成功下发到手机终端时,一个多星期的联通业务接入程序终

中国联通SP业务接入开发总结(SGIP1.2 协议)

 当短信成功下发到手机终端时,一个多星期的联通业务接入程序终于完成,由于以前没有类似的开发经验,中间走了不少弯路,浪费了很多时间。总结下开发经验为下一步开发移动的业务接入打下一个基础。

?

开发过程遇到的几个难点:

1、序列号的定义2、int转byte[]及字节序3、重复收到联通上行(MO)4、收到用户的定购命令但无法下行(MT)

?

1、序列号的定义

   

?

?

/** * 将int转换为byte数组 * * @param i 待转换的int变量 * * @return byte[] 转换后的byte数组 */public static byte[] intToBytes4(int i) {byte[] mybytes = new byte[4];mybytes[3] = (byte) (0xFF & i);mybytes[2] = (byte) ((0xFF00 & i) >> 8);mybytes[1] = (byte) ((0xFF0000 & i) >> 16);mybytes[0] = (byte) ((0xFF000000 & i) >> 24);return mybytes;}?

?

2、int转byte[]及字节序

  在将int转为byte[],须注意字节的顺序。字节顺序分网络字节序和本地字节序,网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解析。网络字节顺序采用big endian排序方式。sgip1.2规定数据传输采用网络字节顺序Big endian(将高字节存储在低地址处,将低字节存储在高地址处)。具体转换及移位操作的使用见http://blog.csdn.net/Mailbomb/archive/2008/05/30/2496168.aspx

????

3、重复收到联通上行(MO)

  重复收到联通上行困扰了我好几天,仔细检查命令的格式都没有错误,上网搜索在csdn看到一个遇到同样问题的帖子,加他QQ,问他这个问题时一直不肯告诉我原因,真的太小气了。想想也是,说不定他解决这个问题费了好多的时间和精力,怎么能让自己辛苦劳动的结果让别人拿去呢,真没有开源精神,鄙视下!中国联通SP业务接入开发小结(SGIP1.2 协议)

???? 最后实在找不出原因,打电话请济南联通的张工在后台跟踪下,最终找出原因:

???? 在SMG向SP递交上行时,SP收到上行必须给SMG一个deliver_resp应答,且应答的序列号必须和相对应的命令的序列号相同。 问题出在我返回了应答,但是返回的应答序列号和之前的上行的deliver命令的序列号不同,SMG认为SP没有收到上行,所以才会重复发送上行给SP.

?

4、收到用户的定购命令但无法下行(MT)

?  实施SPMS系统后,凡是订购(定制)业务都需要SPMS给用户发送确认短信,得到用户确认后,才形成临时订购关系;当SP的订购成功欢迎短信通知成功下发后,才生成正式订购(定制)关系。

  根据“联通在信”SGIP1.2协议修改部分说明,在给用户下发短信时,必须附加linkID且SP下发时UserCount必须填写1,否则视为业务非法包处理。

Submit命令中Reserve字段说明:

?

?? 该Reserve字段为8个字节的保留字段;现将该字段作为MO和MT之间一一对应的LinkID来用。该Reserve字段的值(LinkID)由SPMS业务鉴权平台生成,传给SMG。SPMS将对MO所引起的下发MT进行Reserve(LinkID)值的匹配校验。

?? SP收到SMG网关发送的MO包后,要将MO中的Reserve字段原封不动拷贝出,并赋到该MO所引起的MT(1个或多个)包的Reserve字段中。该操作适用于进行定制命令、退订命令、MO所引起的MT点播之间的对应关系。如果SP不填,SPMS将因为匹配关系不合法,进行过滤。没有成功下发的原因就是因为没将MO中的Reserve字段赋值到Submit的Reserve字段造成的。

?

  

真的太感谢了

我刚毕业,以后可以还有许多问题,需要请教,可以加你Q吗???

我的q:1004143305

再次谢过!!!!

热点排行