2013-09-27 20 views
3

我試圖獲得通過XML/SOAPTravelports uAPI的迴應,但我不只是得到任何有用的東西。 print_rvar_dumpecho都只是顯示Resource id #2其中的東西,但不能得到任何進一步的。PHP的XML請求Travelport的API

我試過他們的API測試工具發送XML請求,它工作正常,但不能讓它在PHP中工作。我之前解析過XML,但從未發送請求。

代碼:

<?php 
$CREDENTIALS = '******************'; 
$message = ' 
<?xml version="1.0" encoding="utf-16"?> 
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<s:Body> 
<air:AvailabilitySearchReq TraceId="P107788" AuthorizedBy="User" TargetBranch="P107788" xmlns:air="http://www.travelport.com/schema/air_v23_0" xmlns:com="http://www.travelport.com/schema/common_v20_0"> 
    <com:BillingPointOfSaleInfo OriginApplication="UAPI" /> 
<air:SearchAirLeg> 
<air:SearchOrigin> 
    <com:Airport Code="SYD" /> 
    </air:SearchOrigin> 
<air:SearchDestination> 
    <com:Airport Code="MEL" /> 
    </air:SearchDestination> 
    <air:SearchDepTime PreferredTime="2013-12-30" /> 
    </air:SearchAirLeg> 
<air:SearchAirLeg> 
<air:SearchOrigin> 
    <com:Airport Code="MEL" /> 
    </air:SearchOrigin> 
<air:SearchDestination> 
    <com:Airport Code="SYD" /> 
    </air:SearchDestination> 
    <air:SearchDepTime PreferredTime="2014-01-02" /> 
    </air:SearchAirLeg> 
<air:AirSearchModifiers> 
<air:PreferredProviders> 
    <com:Provider Code="1P" /> 
    </air:PreferredProviders> 
<air:PreferredCarriers> 
    <com:Carrier Code="QF" /> 
    </air:PreferredCarriers> 
    </air:AirSearchModifiers> 
    <com:SearchPassenger Code="ADT" /> 
    <com:SearchPassenger Code="ADT" /> 
    </air:AvailabilitySearchReq> 
    </s:Body> 
    </s:Envelope> 
'; 

$auth = $CREDENTIALS; //should base_64_encode() this! 
$soap_do = curl_init("https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/Service"); 
$header = array( 
"Content-Type: text/xml;charset=UTF-8", 
"Accept: gzip,deflate", 
"Cache-Control: no-cache", 
"Pragma: no-cache", 
"SOAPAction: \"\"", 
"Authorization: Basic $auth", 
"Content-length: ".strlen($message), 
); 
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 60); 
curl_setopt($soap_do, CURLOPT_TIMEOUT, 60); 
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($soap_do, CURLOPT_POST, true); 
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $message); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $header); 
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true); 
curl_exec($soap_do); 



print_r($soap_do); echo '<br>'; 
var_dump($soap_do); 
echo '<br>'.$soap_do; 

?> 

任何幫助,只是讓我開始將是巨大的。 :)

+0

你有沒有得到任何有用的結果?我也無法連接到這個API ...這個鏈接有一個錯誤代碼https://emea.universal-api.pp.travelport.com/B2BGateway/connect/uAPI/AirService – Tehreem

回答

1

只要改變

$soap_do = curl_init("https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/Service");

$soap_do = curl_init("https://americas-uapi.copy-webservices.travelport.com/B2BGateway/connect/uAPI/AirService");

+0

不幸的是不會改變任何東西。 – Tommie

3

我是一個合作伙伴技術專家在Travelport的,我理解你的無奈。我們以前對端點的使用和描述一直令人困惑。如果您登錄我們的開發人員門戶,則會更新PHP示例; https://developer.travelport.com/app/developer-network/resource-centre-uapi

最簡單的方法是'全部取消',然後選擇'Sample Code'。

給那些試試!

+0

您在此線程啓動後6個月回答,但感謝您的回覆。最大的問題是uAPI文檔嚴重缺乏,這使得很難用於更多的新手開發人員(我不是開發人員,我是Webdesigner /藝術總監,需要一些PHP/SQL知識)。但是,如果一個人只能通過最初的混淆,那麼uAPI感覺應該相當友好。 我的試用期已經結束了很久,我放棄了試圖從uAPI中獲得任何有用的東西。任何方式來獲得更長的試用期? – Tommie

+0

任何人都可以提供文件或鏈接travelport航班API以瞭解他們的參數詳細信息? –