0
我越來越喜歡在EbxmlMessage指定清議錯誤字符串代碼不存在獲取故障字符串中SABER HOTEL API:在EbxmlMessage規定動作不存在
任何一個可以幫助我,我錯過了什麼。
$OTA_HotelAvailRQ = new stdClass;
$OTA_HotelAvailRQ->AvailRequestSegment = new stdClass;
$OTA_HotelAvailRQ->AvailRequestSegment->ReturnHostCommand = true;
$OTA_HotelAvailRQ->AvailRequestSegment->TimeStamp = '2015-11-12T11:22:06';
$OTA_HotelAvailRQ->AvailRequestSegment->Version = '2.2.1';
$client = new SoapClient("http://webservices.sabre.com/wsdl/tpfc/OTA_HotelAvailLLS2.2.1RQ.wsdl", [
"trace" => 1,
"exceptions" => 0,
"cache_wsdl" => 0
]);
$client->__setSoapHeaders(new SoapHeader('NAMESPACE','Auth', [
'UserName'=>'',
'Password'=>'',
'SystemId'=> [
'_'=>'DATA',
'Param'=>'PARAM'
]
], false));
print_r($client->OTA_HotelAvailRQ($OTA_HotelAvailRQ));
echo "<p>Request :".htmlspecialchars($client->__getLastRequest()) ."</p>";
echo "<p>Response:".htmlspecialchars($client->__getLastResponse())."</p>";
感謝您的答覆 - 當我們打印$ client - > __ getFunctions()時,我們發現WSDL文件的所有可訪問的方法。這裏只顯示OTA_HotelAvailRQ方法。如果我們嘗試訪問OTA_HotelAvailLLSRQ方法,那麼你會得到錯誤 - 「這種方法不是這種服務的有效方法」。 –
請認爲我在PHP方面的知識非常有限。 (0)=>字符串(57)「OTA_HotelAvailRS OTA_HotelAvailRQ(OTA_HotelAvailRQ $ body)」} 因此,OTA_HotelAvailRQ對於身體是正確的。 – Wisdoom
我剛剛意識到的是肥皂頭是「空的」。下面的代碼 $ header = new SoapHeader('NAMESPACE','Auth',$ auth,false); 應該產生一個報頭是這樣的: DATA NS1:SYSTEMID> NS1:用戶名> ns1:Password> SOAP-ENV:Header> 這不是Saber的有效標題,我假設這是它失敗的原因 –
Wisdoom