如何从php中调用soap web服务

问题描述:

我能够在我的chrome中使用wizdler使用soap web服务,但需要如何在php代码中使用它。 从Wizdler我能得到适当的反应,例如我张贴这样的信息: enter image description here如何从php中调用soap web服务

的问题是如何从PHP代码调用这个服务,我做了什么/努力迄今:

<?php 

$wsdl = "http://64.20.37.90/VTWebServiceTest/VisualService.svc?wsdl"; 

$client = new SoapClient($wsdl); 

$request_param = array(

    "storeNumber" => "valid value", 
    "enterpriseId" => "valid value", 
    "credential" => "valid value" 

); 

try { 

    $responce_param = $client->GetCategories($request_param); 
    $result = $responce_param->GetCategoriesResult; 
    print_r($result); 
} catch (Exception $e) { 

    echo "Exception Error!"; 
    echo $e->getMessage(); 

} 

?> 

但它总是返回消息“12 |无效的服务凭证”。

有人可以帮我吗?

在此先感谢。

+0

“无效的服务凭据” 可能劲歌您的凭证无效。如何确定您使用的是有效参数?您是否以另一种方式(如使用SoapUI)测试SOAP调用? –

+0

我认为Felippe是正确的,我试过这是SOAPUI并得到相同的错误。 我认为这需要一个有效的值....“credential”=>“有效值” –

+0

谢谢Felippe和Mike。通过使用Chrome扩展“wizdler”来调用api,我可以得到正确的响应。我猜测通过SoapClient发送请求时请求格式有问题。正如你在我的问题中看到的那样,信封已经通过了Wizdler。我不确定什么请求格式SoapClient将接受。我甚至通过发送XML来尝试,但没有运气。 –

也许试试这个...

$responce_param = $client->GetCategories($request_param); 
print_r($responce_param); 

甚至

$responce_param = $client->GetCategories($request_param); 
$values = get_object_vars($responce_param); 
$myresults = object_to_array($values); 
print_r($myresults);