解读动网、Oblog、动易三方制订的PDO通行接口

为实现各WEB应用之间用户信息的同步更新、登录等操作,动网、oblog、动易三方联合制定了本接口,其他系统只要提供并开发符合该规范的接口,也能实现与三方WEB应用用户信息的同步更新、登录等操作。今天我们来详细说说这个接口的实现原理,以便快速的将自己的站点和上述WEB应用进行整合。

一、基本原理



上图所示为该通行接口实现的模型,即网站系统1产生XML格式的请求的并将其发送给网站系统2,网站系统2响应请求并进行相应的处理,然后仍产生一个XML格式的响应返回给网站系统1,网站系统1根据返回的内容再进行相应的处理,简单吧?当然,对于请求XML以及响应XML在结构是有要求的:

1.请求XML结构

引用内容 引用内容
<?xml version="1.0" encoding="gb2312"?>
<root>
<appid>程序标识</appid>
<action>操作类型</action>
<syskey>安全码</syskey>
<username>用户名</username>
<可选元素列表 />
</root>

2.响应XML结构

引用内容 引用内容
<?xml version="1.0" encoding="gb2312"?>
<root>
<appid>程序标识</appid>
<status>操作结果</status>
<needcookie>是否需要写cookie</needcookie>
<body>
    <message>操作不成功时的错误说明</message>
<可选元素列表 />
 </body>
</root>

说明:
a.斜体部分在实际运用时要由实际值替代
b.可选元素列表指其他形如电子邮件、QQ号码、电话号码、密码提示问题和密码提示答案等

更多元素定义及其他详细信息可查看动网PDO通行接口开发人员参考规范1.0:http://www.mzwu.com/pic/20070817/pdo.htm

二、应用举例

好了,下边我们举一个注册的例子进行说明:

在网站系统1填好表单后点击按钮进行注册,网站系统1产生一个XML格式请求:

<?xml version="1.0" encoding="gb2312"?>
<root>
<appid>other</appid>
<action>reguser</action>
<syskey>c831b04de153469d</syskey>
<username>dnawo</username>
<其他元素列表 />
</root>

网站系统1建立一个XmlHttp对象,并用其Send方法将请求XML发给网站系统2,网站系统2响应请求并进行相应处理(将注册信息添加至用户表)后也产生一个XML格式的响应:

引用内容 引用内容
<?xml version="1.0" encoding="gb2312"?>
<root>
<appid>dvbbs</appid>
<status>0</status>
<body>
    <message/>
<可选元素列表 />
 </body>
</root>

网站系统1通过XmlHttp对象的responseXML属性获取响应XML,通过读取status节点的值判断是在网站系统2注册成功,此处为0表示注册成功,网站系统1再在其用户表也新添加一条用户信息,整个注册过程完毕!如果status节点值为1,则显示message节点的内容,终止注册过程,注册失败!当然,实际注册过程会比上边说的复杂,比如还得判断注册用户名是否已存在。

修改资料和删除用户的实现和上边注册过程相同,而登录和注销的实现除了包含上边过程外,还要构造一个script脚本调用,输出到页面的HTML代码,当password为空表示注销COOKIE信息,不为空时则记录登录信息。具体查看"动网PDO通行接口开发人员参考规范1.0"第四部分。

三、后记

经过上边的讲解,大家对PDO通行接口应该都有一定的了解了吧,有时间再打开动网dv_dpo.asp、Cls_DvApi.asp、reg.asp、login.asp、logout.asp等几个文件好好理解一番,相信你也快也就能将自己的系统和它进行整合了。

评论: 1 | 引用: 0 | 查看次数: 13320
sky717[2008-02-16 02:29 PM | | | 202.158.187.160 | del | 回复回复]
沙发
支持强哥,这么辛苦~~!写这么好的文章。。。。。
发表评论
登录后再发表评论!