首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

!php调用webservice出错

2012-12-31 
求助!!!php调用webservice出错!$client new soapclient(http://www.tuc365.cn/SPINTERFACE.asmx?wsdl,

求助!!!php调用webservice出错!


$client = new soapclient('http://www.tuc365.cn/SPINTERFACE.asmx?wsdl', true);

$fromcity=$_POST[txtCity];                //出发城市
$tocity=$_POST[txtCity0];                 //抵达城市
$fromdate=$_POST[fromdate];               //出发时间
$roles=$_POST[roles];                     //是否返回
$returnDate=$_POST[returnDate];           //返回时间
$userName=$_POST[username];               //用户名
$clientName=$_POST[clientName];           //乘客姓名
$clientCardId=$_POST[clientCardid];       //乘客证件号
$clientPhone=$_POST[clientPhone];         //乘客电话
$clientType=$_POST[clientType];           //乘客类型
$webname="51pingo.com";                   //网站名称
$filghtId=$_POST[$filghtId];              //航班id 
$linkName=$_POST[txtLinkManName];         //联系人姓名           
$linkPhone=$_POST[txtLinkManPhone];       //联系人电话
$linkAddress=$_POST[txtLinkManAddress];   //联系人电话
$linkEmail=$_POST[txtLinkManEmail];       //联系人email
$webOrderId=date("YmdHis");               //生成订单号
$webUserName="tuc365";
$webmd5="tuc365";

$orderInfo=array($fromcity,$tocity,$fromdate,$roles,$returnDate,$userName,$clientName,$clientCardId,$clientPhone,$clientType,$webname,$filghtId,$linkName,$linkPhone,$linkAddress,$linkEmail,$webOrderId,$webUserName,$webmd5);
$str=$client->call('AddOrders',$orderInfo);
if (!$err=$client->getError()) {
    echo "程序返回:",htmlentities($str,ENT_QUOTES);
} else {
    echo "错误 :",htmlentities($err,ENT_QUOTES);
}


现在的返回信息是
错误 :wsdl error: phpType is struct, but value is not an array: see debug output for details 
请问高手如何解决!php调用webservice这两天刚研究。不是很懂!
[解决办法]
<code>
<?php
header("Content-Type: text/html;charset=utf-8");
$client = new SoapClient('http://www.tuc365.cn/SPINTERFACE.asmx?wsdl');

//GetFlight
$aData = array('webName'=>'','webUserName'=>'','webmd5'=>'tuc365');
$aResult = $client->__call('GetFlight',$aData);

//AddOrders
/*$aData = array(
"fromCity"=>"", 
"toCity"=>"", 
"fromDate"=>"", 
"returnDate"=>"", 
"roles"=>"", 
"userName"=>"", 
"clientName"=>"", 
"clientCardId"=>"", 
"clientPhone"=>"", 
"clientType"=>"", 
"webName"=>"", 
"flightId"=>"", 
"linkName"=>"", 
"linkPhone"=>"", 
"linkAddress"=>"", 


"linkEmail"=>"", 
"webOrderId"=>"", 
"webUserName"=>"", 
"webmd5"=>"tuc365"
);
$aResult = $client->__call('AddOrders',$aData);*/
echo '<pre>';
var_dump($aResult);
echo '</pre>';
?>
</code>
[解决办法]
$client->call('AddOrders',array("parameters"=>$orderInfo));//这里的格式是固定的。
所有的参数都在一个数组里,parameters。
$orderInfo里参数的名字及格式,就只有根据你调用的webservice来了

热点排行