2017-08-15 99 views
1

我能夠在我的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來嘗試,但沒有運氣。 –

回答

0

也許試試這個...

$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);