Amadeus是一家全球領先的旅游科技公司。Amadeus WS(Web Services)是其提供的一項基于SOAP協議的網絡服務,允許客戶端在互聯網上與Amadeus系統進行交互。PHP是一種流行的服務器端編程語言,在使用Amadeus WS時,PHP可以很方便地調用對應的WSDL以獲得所需的操作。
Amadeus WS的使用要求客戶端必須提供一組憑證,以便對服務進行身份認證。在PHP中,可以使用SOAP Header來傳遞這些憑證。下面是一個在PHP中調用Amadeus WS的示例代碼:
// Create SOAP client $client = new SoapClient('https://test.webservices.amadeus.com/....?WSDL'); // Set SOAP Header $header = new SoapHeader( 'http://xml.amadeus.com/2010/06/Security_v1', 'Security', array( 'UsernameToken' =>array( 'Username' =>'your-username', 'Password' =>'your-password', 'Organization' =>'your-organization', 'Domain' =>'your-domain', ), 'BinarySecurityToken' =>'your-binary-security-token', ) ); $client->__setSoapHeaders(array($header)); // Call Amadeus WS operation $result = $client->__soapCall('your-operation-name', array($your-parameters));在上面的代碼中,我們首先創建了一個SoapClient對象。該對象接受一個WSDL地址作為參數,然后根據WSDL定義生成了一個客戶端代理類。接下來我們創建了一個SOAP Header,用于傳遞身份認證信息。其中包括用戶名、密碼、組織和域信息,以及一個二進制安全令牌。最后我們調用了一個Amadeus WS的操作,并傳遞了相關的參數。注意,我們使用了$client->__soapCall()方法來進行操作調用,而不是直接調用生成的客戶端代理類中的方法。 Amadeus WS提供了豐富的操作接口,可以實現多種功能。例如,我們可以使用Amadeus WS查詢機票價格、訂購酒店房間、預定租車,等等。下面是一個查詢機票價格的示例代碼:
// Set Amadeus WS request $request = new stdClass(); $request->AvailabilityOptions = new stdClass(); $request->AvailabilityOptions->MaxResponses = 10; $request->AvailabilityOptions->MessageActionDetails = array( array( 'MessageFunctionDetails' =>array( 'MessageFunction' =>'ARN', ), 'AdditionalMessageFunctionDetails' =>array( 'MessageFunctionBusinessDetails' =>array( 'MessageFunctionDetailsQualifier1' =>'MFL', 'MessageFunctionDetailsQualifier2' =>'NUC', ), ), ), ); $request->OriginDestination = new stdClass(); $request->OriginDestination->DepartureDateTime = '20220410T100000'; $request->OriginDestination->Origin = 'PEK'; $request->OriginDestination->Destination = 'LHR'; $request->OriginDestination->TravelPreferences = new stdClass(); $request->OriginDestination->TravelPreferences->CabinPreferences = array( array( 'Type' =>'M', ), ); // Call Amadeus WS operation $result = $client->__soapCall('Air_MultiAvailability', array($request));在上面的代碼中,我們首先創建了一個查詢機票價格的請求對象$request,并設置了相應的參數。接下來我們調用了Air_MultiAvailability操作,發送了請求,得到了查詢結果$result。注意,我們使用了標準的PHP對象來表示請求輸入和查詢輸出,而Amadeus WS會將這些對象轉換為所需的XML格式進行交互。 總之,Amadeus WS提供了許多強大的功能,可以幫助客戶以更高效的方式處理旅游事務。在使用Amadeus WS時,我們可以使用PHP等編程語言來調用對應的WSDL,對應的操作,以獲得所需的操作結果。同時,我們還可以根據具體需求自定義請求內容,并對返回結果進行相應處理。