免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2314 | 回复: 0
打印 上一主题 下一主题

Zvdfasdfsadfa [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-11 17:57 |只看该作者 |倒序浏览

CP子系统接口设计

1.   概述
为了方便我们公司的短信业务与CP展开合作,并实现统一的系统接口规范,特提供本技术文档,供CP来设计其系统。

2.   系统结构设计
2.1      系统结构图
系统结构如下图所示——

说明:
SP一旦接收到来自移动短信网关的上行,即通过自有的MO发送接口,将该上行发送到指定CP的接收接口程序,CP收到MO数据包后进行处理,生成MT之后再发送到SP的“MT接收接口”,最终交由SP的短信网关进行下发。

2.2      程序模块拓扑图
系统中相关的程序模块结构如下图所示——

2.3      系统技术接口
2.3.1                   CP端的MO接收接口
具体的接口技术规范由SP给出,CP厂商按照该技术规范开发出一个接口程序,并部署到一个可以经互联网访问的服务器上,同时把相关接口参数提供给SP。
如果接口符合SP的规范要求,并且参数访问无误,则SP会把相应的MO数据包通过该接口传递给CP。
详细的技术规范请参阅第3章。

2.3.2                   SP端的MT接收接口
SP会提供一个统一的标准接口,提供给所有的CP调用,CP调用该接口程序,把需要发送的MT数据包传递给SP。
SP接收到来自CP的MT记录后,会核对数据信息,如果符合下发条件,则通过短信网关下发到用户手机,并返回正确处理的代码;如果不符合下发条件,或数据内容有误,则返回相应的错误代码。
详细的技术规范请参阅第3章。

3.   系统接口设计
3.1      协议规范定义
3.1.1                   MO数据包定义
每个MO记录数据包中将包含如下字段内容:
字段名称
类型
描述
recID
数值型
MO记录流水号(在对点播类MO回复处理的MT记录中,应该填上原始MO的recID,请参阅
MT数据包定义

srcTermID
字符串
发出MO的用户手机号
destTermID
字符串
MO记录要发送的目标号码,即SP的接入号(短号码+长号码)
linkID
字符串
MO记录中的LinkID字段内容,在对点播MO作出回复处理时,应该在相应的MT记录中回填该字段内容
msgContent
字符串
MO消息内容,即上行指令

3.1.2                   MT数据包定义
每个MT记录数据包中将包含如下字段内容:
字段名称
类型
描述
moRecID
数值型
如果由MO引起的MT,应该将相应的MO包中的字段recID的值填入到该字段中,请参阅
MO数据包定义

对于Push的MT,该字段内容填0;
srcTermID
字符串
MT记录中需要显示的SP的长号码,如果是由MO引起的MT,则使用MO包中的destTermID字段内容;
对于主动Push的MT,请使用SP分配给CP的号码;
destTermID
字符串
MT下发的目标手机号
feeTermID
字符串
MT下发的记费手机号码
linkID
字符串
对于点播引起的MT,将相应的点播MO的LinkID字段内容填写到此处;
对于Push的MT,该字段内容可以为空字符串
msgContent
字符串
下行消息文本
mtType
数值型
1:点播引起的下行;2:Push下行
businessCode
字符串
业务代码;
SP根据与CP合作的内容和方式,给CP分配一个或多个businessCode,每一个businessCode对应一个业务,例如:SP给CP分配一个点播和Push下行通道,相应的businessCode是A和B,CP在点播的回复MT包中,该字段应该填A,在Push的MT中,该字段应该填B。
如果该字段填写了一个未分配的值,则会返回错误代码;

3.2      CP端的MO接收接口定义
为了能接收来自SP的MO数据包,CP需要按照SP提供的协议及规范来开发一个接口程序,并部署到一台Internet主机上,供SP的系统来调用。

3.2.1                   接口类型
CP端的MO接收接口采用HTTP的方式来实现,SP通过POST调用的方式通过该HTTP接口传递给CP。CP可以使用不同的开发工具来实现该接口,例如CGI、ASP、JSP、.NET、PHP诸如此类。
接口部署好之后, URL的形式如
http://cp_web_server_ip/mo_recv.asp?params=...

3.2.2                   接口参数
接口具有一个参数,即“modata”。
SP传递的modata的原始内容是XML格式,具体格式请参阅后续介绍,XML文本内容经过3DES加密后,再使用Base64编码。
下面给出modata的XML格式示例——
   32943
   13812345678
   501323
   09104501620300746064
   上行指令内容
SP会给每一个CP分配一个用于3DES加密解密的密钥,SP使用该密钥对上面的XML文本进行3DES加密,随后再进行Base64编码,紧接着发送给CP的指定接口。

3.2.3                   接口返回值
CP收到从SP传递过来的数据后,解析出modata的参数值,经过Base64解码,3DES解密,得出XML文本数据后再分解出MO包各字段的值。
如果CP成功地接收并解析出MO的内容,则应通过HTTP返回文本内容“SUCCESS”,否则返回“FAIL”。

3.3      SP端的MT接收接口定义
为了使CP能把要发送的下行传递给SP,SP提供统一的MT接收接口,CP使用指定的协议把相关数据通过该接口传递到SP的系统中,SP根据处理的情况返回不同的结果值。

3.3.1                   接口类型
SP提供统一的HTTP接口接收来自CP的MT数据包,CP应采用POST的方式把数据送给SP。接口URL示例——
http://sp_web_server_ip/mt_recv.asp?params=...

3.3.2                   接口参数
该接口具有如下参数——
参数名称
描述
cpguid
CP标识,由SP统一分配静态的标识字符串给CP,用于标识每一个CP的身份,其格式采用GUID类型,例如:{BC08D3B2-36E5-48a2-AF0A-4ABA679ADC90}
mtdata
MT数据包内容

CP在传递数据给SP时,应使用SP分配好的标识通过参数cpguid传递,否则将无法被正确识别。
CP传递的mtdata数据包的原始内容是XML文本,具体格式请参阅后续介绍,XML文本内容经过3DES加密后,经Base64编码后传递给SP。
下面给出mtdata的XML格式示例——
   32943
   501323
   13812345678
   13812345678
   09104501620300746064
   下行指令内容
   1
   ABC

SP会给每个CP分配一个CPGUID,和一个用于加密解密的密钥,CP使用密钥把MT包的XML文本加密后,经Base64编码,再传递给SP。

3.3.3                   接口返回值
SP的MT接收接口接收到数据包后,进行3DES解密处理,然后再使用Base64解码,最后再解析出XML包中的MT详细信息。
调用结束后,接口通过HTTP返回一个数字代码,具体意义,请参照下面表格——

返回代码
描述
0000
成功。
1001
发送服务器地址鉴权失败。
1002
身份校验失败,CPGUID不存在。
1003
Base64解码或3DES解密错误。
1004
不能正确解析MT包,无效的XML文件格式。
1005
被拒绝,无效的业务代码或接入号。
1006
被阻止,下行内容中包含不良信息。
1007
被拒绝,点播MO记录不存在,无效数据。
1008
url传入参数无效。
1009
点播回复下行数量超出限制条数。
1010
被拒绝,无效的MtType。
1011
被拒绝,Post数据包超长。
1012
失败,其他错误。


4.   加密解密的说明
  加密的说明
加密规则和SP提供的规则完全一致。
采用3DES加密, ECB模式/使用PKCS7方式填充不足位,目前给的密钥是192位(24个字节)经过BASE64编码后的可见字符串。

加密流程
1.对获得的密钥进行Base64解码(解码后的密钥是字节数组)
2.使用编码后的密钥用3DES对源字符串加密(加密后的字符串也是字节数组)
3.对加密后的字符串进行Base64编码(编码后的是经过Base64编码的字符串)

以下为一个加密的例子:

密钥的base64编码是:
MTIzNDU2Nzg5MDEyMTIzNDU2Nzg5MDEy
源字符串是:
3DES以及Base64编码后的字符串:XiUyBYi83+DRdMQJ/AcwYg==

解密就是加密的逆过程。

解密流程
1.对获得的密钥进行Base64解码(解码后的密钥是字节数组)
2.对加密后的字符串进行Base64解码(解密后的字符串也是字节数组)
3.使用解码后的密钥用3DES对Base64解码后的字符串解密。

解密的例子:
密钥的base64编码是:
MTIzNDU2Nzg5MDEyMzQ1Njc4OTAyMjEx
解密前的字符串:
gsYZ2zCdoxBzukNbQKivZA==
Base64以及3Des解码后的字符串:





本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14401/showart_139267.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP