作者::dnawo 日期:2007-08-17
http://www.mzwu.com/article.asp?id=1035
为实现各WEB应用之间用户信息的同步更新、登录等操作,动网、oblog、动易三方联合制定了本接口,其他系统只要提供并开发符合该规范的接口,也能实现与三方WEB应用用户信息的同步更新、登录等操作。今天我们来详细说说这个接口的实现原理,以便快速的将自己的站点和上述WEB应用进行整合。
一、基本原理
上图所示为该通行接口实现的模型,即网站系统1产生XML格式的请求的并将其发送给网站系统2,网站系统2响应请求并进行相应的处理,然后仍产生一个XML格式的响应返回给网站系统1,网站系统1根据返回的内容再进行相应的处理,简单吧?当然,对于请求XML以及响应XML在结构是有要求的:
1.请求XML结构

<root>
<appid> 程序标识</appid>
<action> 操作类型</action>
<syskey> 安全码</syskey>
<username> 用户名</username>
<可选元素列表 />
</root>
2.响应XML结构

<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格式请求:

<root>
<appid>other</appid>
<action>reguser</action>
<syskey>c831b04de153469d</syskey>
<username>dnawo</username>
<其他元素列表 />
</root>
网站系统1建立一个XmlHttp对象,并用其Send方法将请求XML发给网站系统2,网站系统2响应请求并进行相应处理(将注册信息添加至用户表)后也产生一个XML格式的响应:

<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等几个文件好好理解一番,相信你也快也就能将自己的系统和它进行整合了。