3

XML/SOAP経由でTravelports uAPIからの応答を取得しようとしていますが、有用なものが得られません。そして、すべてが何かを示すだけです、それ以上は得られません。print_rvar_dumpechoResource id #2

API Test Tool を使用して 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;

?>

私を始めるための助けは素晴らしいでしょう。:)

4

2 に答える 2

4

私は Travelport のパートナー テクニカル スペシャリストです。あなたの不満を理解しています。以前のエンドポイントの使用法と説明は混乱を招きました。開発者ポータルにログインすると、更新された PHP サンプルがあります。 https://developer.travelport.com/app/developer-network/resource-centre-uapi

最も簡単な方法は、「すべての選択を解除」してから、「サンプル コード」のみを選択することです。

それらを試してみてください!

于 2014-05-08T14:57:16.800 に答える
2

変えるだけ

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

于 2013-10-04T04:31:52.863 に答える