统计在线人数...

WAP订购管理接口源程序(php版本)(1)

[ 来源:转载 | 作者:佚名 | 时间:2006-5-29 下午 12:47:09 | 浏览:统计中... ]

WAP订购接口其实很简单,用以前1.5的实现方法http post方式也可以实现。

思路很简单:程序作为http post服务器接收一个xml消息后,对消息体进行解析,进行入库操作(入库操作起不到实际作用,主要是为了对账,你完全可以不处理任何消息,而直接返回一个xml处理成功的包),然后向卓望返回一个处理结果的xml包。

代码供刚入门wap的php程序员学习,附源代码如下:

<?php
ob_start();
$isParseTransactionID=FALSE; //是否解析到
$isParseServiceID=FALSE; //是否解析到服务ID
$isParseMID=FALSE; //否解析到梦网ID
$isDestUser=FALSE; //否解析到普通用户的信息
$isParseActionID=FALSE; //用户操作码
$TransactionID=NULL; //事物ID
$ParseServiceID=NULL; //服务ID
$ParseMID=NULL; //梦网ID
$ParseActionID=NULL;
$ResultID=0; //处理结果。默认为成功
$data=$HTTP_RAW_POST_DATA;
writeFile("1.txt",$data);//写接收内容到文件
$parser=xml_parser_create(); //创建解析器实例
xml_set_element_handler($parser,"startElement","endElement"); //开始和结束时执行,函数自定义的
xml_set_character_data_handler($parser,"characterData"); //数据操作,函数自定义的
xml_parse($parser,$data,true); //解析器实例|数据|是否动送出最后的资料区段
xml_parser_free($parser); //释放解析器,以下进行数据库操作,判断定购关系,并返回给卓望处理结果
include_once "include/mysql.php";
$operator=new MySQL($host,$user,$passwd,$database);
$conn=$operator->Connect();
$SPServiceID="0000000111"; //服务ID
$datatime=date("Y-m-d H:i:s"); //得到当前日期
$sql = "select state from custom where mid =''$ParseMID'' and service_id =''$SPServiceID''"; //查找是否定购了服务
$sql1 = "insert into custom values(''$SPServiceID'',''$ParseMID'',''1'',''$datatime'')"; //插入MID的订购记录
$sql5 = "update custom set state = ''1'' where mid =''$ParseMID'' and service_id =''$SPServiceID''"; //MID取消该服务的订购的状态
$sql2 = "update custom set state = ''2'' where mid =''$ParseMID'' and service_id =''$SPServiceID''"; //MID取消该服务的订购的状态
$sql3 = "update custom set state = ''3'' where mid =''$ParseMID'' and service_id =''$SPServiceID''"; //MID激活该服务的订购状态 
$sql4 = "update custom set state = ''4'' where mid =''$ParseMID'' and service_id =''$SPServiceID''"; //暂停服务
switch($ParseActionID)
{
case 1: //开通服务
if(FindServiceID($ParseServiceID))
{//找到serviceid
if(FindMID($ParseMID))
{
$res=$operator->Query($sql,$conn);
$rows=$operator->getRowsTop($res);//取出顶层对象
if($rows[0]==1)//4007: MISC 同步开通服务,但SP 端已存在订购关系,且状态为开通
{
$ResultID = "4007";
}
if($rows[0]==2)
{
$res=$operator->Query($sql5,$conn);
$ResultID = "0";
}
}
else
{//没找到就插入
$operator->Query($sql1,$conn);
$ResultID = "0"; //0 : 成功开通
}
}
else //服务ID错误了
{//4004: 无效的serviceID
$ResultID = "4004";
}
break;


case 2:
if(FindServiceID($ParseServiceID))
{//取消服务,只要找到mid立刻让他取消
if(FindMID($ParseMID))
{
$res=$operator->Query($sql2,$conn);
$ResultID = "0";
}
else
{//4005: 无效的pseudocode
$ResultID = "4005";
}
}
else
{//4004: 无效的serviceID
$ResultID = "4004";
}
break;

共有0人参与评价,平均得分:0分
评论内容只代表网友观点,与本站立场无关! 查看完整内容
   

当前在线人数
QQ:748838 MSN:allen_xia#msn.com E-mail:allenxia666#126.com QQ群:站长联盟北方区-北京(28200145) 站长联盟南方区-上海(67713522)