XML协议组成.docx
- 文档编号:3939649
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:9
- 大小:24.52KB
XML协议组成.docx
《XML协议组成.docx》由会员分享,可在线阅读,更多相关《XML协议组成.docx(9页珍藏版)》请在冰豆网上搜索。
XML协议组成
基于彩票客户端的XML的数据协议组成
名词
说明
md5
message-digestalgorithm5
http
hypertexttransferprotocol
xml
extensiblemarkupIanguage
交易交互是以http协议作为数据传输协议,这里定义发起交易请求的一端为客户端,客户端需要以httppost数据流(非表单方式)
的方式提交交易请求,如下所示:
假设有一个查询指定玩法可销售期信息的交易请求,那么http消
息体的内容如下:
v?
xmlversion=”1.0”encoding=”utf-8”?
>
vmessageversion="1.0">
v/element>
v/elements>
注:
实际http传输中,对内容进行编码,编码字符集utf-8(这主要是
考虑到AJAX传输过程是以UTF-8编码)。
开发过程中会遇到这种情况,明明已经发送数据到服务器了,可是服务器收不到数据,遇到这种问题时的处理办法是,查看一下发送程序代码,是否进行了如下设置:
‘contertype',‘applicaWWxform-urlencoded'
如果有,去除,或者修改成:
‘contertype',‘text/xmlcharsetutf
1.0、消息包
每一个请求/响应的消息包都是一个xml,包含消息头和消息体,对于不同类型的请求/响应,消息头的格式是相同的,而消息体会携带具体的类型的请求/响应信息。
请参照下面的消息包格式定义。
xmlversion二”1.0”encoding二”-8t”?
>
vmessageversion二"1.0">
vmessengerid>200911131015330000000001v/messengerid>
velements>
velement>
v/element>
v/elements>
v/body>
整个消息包是一个xml字符串,首先声明xml的版本和编码,这
里定义encoding为utf-8。
在消息包元素message中声明了version属
性,表示该消息包使用的数据通信协议的版本,当前为1.0
1.1消息头
消息头对于所有的交易请求以及对每个交易请求的请求/响应都
具有同样的数据结构。
请参照下面的消息体格式定义。
注:
在后面对交易请求消息体的描述中不再重复说明消息头的结构。
vmessengerid>20091113101533000001v/messengerid>
vtransactiontype>102v/transactiontype>
vdigest>7ec8582632678032d25866bd4bce114fv/digest>
vagenterid>800001v/agenterid>
vusername>张三v/username>
vsource>ivrv/source>
vipaddress>33.22.11.22v/ipaddress>
vcompress>DESv/compress>加密用的标签:
使用什么方式加密(DES)
v/header>
header元素定义了消息头的数据结构,其中:
名称
类型
长度
描述
messengerid
String
20
消息编号,格式为yyyymmddhh24miss+六位递增序号。
注:
在非大客户模式下,可以为空。
timestamp
String
14
格式为:
yyyymmddhh24miss或者yyyy-mm-ddhh24:
mi:
ss
transactiontype
String
3
交易类型,详见附件
agenteridid
String
6
代理编号
username
String
<16
用户账号
digest
String
32
对消息包的摘要,摘要算法为md5,摘要内容为(时间戳+代理密码+消息体)
source
String
16<=
用户操作终端来源,女口:
ivr,sms,web
等。
ipaddressaddress
String
20<=
对于digest部分,表中已经定义了需要对消息体的哪些部分进行摘要,这里需要进行更进一步的说明,其中:
代理商密码:
彩票支撑系统会为每个投注代理商分配一个交易访问密码,这个密码不会在消息中直接传输。
无论是投注代理
商向彩票支撑系统发送消息还是彩票支撑系统向某个代理发送消息,都会使用投注代理商的密码来执行摘要。
消息体:
消息包中body元素部分,包含
与v/body>。假如一个数据包的格式如下:
xmlversion='1.0'encoding='utf-8'?
>
vmessageversion="1.0">
v/element>
xmlversion="1.0"encoding="utf-8"?
>
vheader>
vtimestamp>20091113101533
vcompress>DES
9XZTaMYphue6K/FeOZ3BNFjdnPsPvvL/1/vA75iGWiU8zKDYa9/jKDwz3Rbe1X6m3hamZ
PMLXz7FSXnD/Ur/BTZqfmta+0yJuMPGcWQEFjVnO/10amdeXoQDJDjP9gmOWb7r7WiMcX
RYTSTmH1F8a5a1tVXQnK6WU4fmDkCU1Yq+RAowxwAH9VzvZiOP8ISyCGHpYPCADWcvpE5RtH0Le674kW29XlisxTJvcVhuDDamnMa0=
那么,被摘要的字串应该是(假设投注代理商的密码为111111)
111111
注:
被摘要的body元素部分应该保留消息字串中的所有格式信息,比如空格,回
车符等。
1.2协议中协议头使用说明
协议头中包含一些通用的信息,对于系统中不同的环节,有些协议字段可以不填,有些协议字段需要在应用服务器端填写后,发送到无纸化平台。
vheader〉
vmessengerid〉200911131015330000000001v/messengerid〉vtimestamp〉20091113101533v/timestamp>
vtransactiontype>102v/transactiontype>
vdigest>7ec8582632678032d25866bd4bce114fv/digest>
vagenterid>800001v/agenterid〉
v/header>
对于:
flash,ajax+js等客户端模式下,messengerid,digest,agenterid,
username等字段是不需要填写的。
这些信息可以在服务端由具体的服务平台进行被充填写。
因为有些安全信息,是不能在用户的电脑上执行的。
附录A:
DES数据加密
为了数据的安全,XML协议在传输过程中,可以使用加密处理。
1、数据按照PKCS5规则进行补位•(缺7位补7个0x07,缺6位则补6个0x06,以次类推,如果正好8位,也需要补8个0x08)。
2、实际加密模式选择DES-ECB。
3、经过DES加密后的数据必须通过Base64编码转换为明文的字符串。
在XML约定协议的header部分中,增加一个标签compress,女口:
xmlversion二”1.0”encoding二”-8t”?
>
vmessageversion二"1.0">
vmessengerid>200911131015330000000001v/messengerid>
voelement>
verrormsg>操作成功v/errormsg>
v/oelement>
velements>
velement>
vlotteryid>d11v/lotteryid>vissue>2009111301v/issue>
v/element>
v/elements>
v/body>
v/message>
需要DES加密的数据:
voelement>
verrorcode>0v/errorcode>
verrormsg>操作成功v/errormsg>
v/oelement>
velements>
velement>
v/element>
v/elements>
加密后提交的数据包:
v?
xmlversion二”1.0”encoding二”-8t”?
>
vmessageversion二"1.0">
vmessengerid>200911131015330000000001v/messengerid>vtimestamp>20091113101533v/timestamp>
vtransactiontype>102v/transactiontype>
vdigest>7ec8582632678032d25866bd4bce114fv/digest>vagenterid>800001v/agenterid>
vcompress>DESv/compress>
v/header>
vbody>
二xxxxdafdfdsafsa==
v/body>v/message>
附录B:
数据DES加密与MD5的双重性问题。
MD5是在DES加密前进行的,MD5签名使用的密钥是用的渠道的密钥,DES加密数据使
用的密钥是当前用户的密码明文经过MD5处理后,生成的长度为32字节的十六进制字符串的前16个字符。
比如:
一用户的密码明文为:
1234567890,经过MD5处理后,则数据转成为:
e807f1fcf82d132f9bb018ca6738a19f,则进行DES加密数据时,密钥为:
e0fff2129b1c63a9。
附录C:
GZIP压缩传输
手机客户端与中间件接口传输与接收数据,均需要进行GZIP压缩传输,减少数据库传
输流量。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 协议 组成