标签: sabre

代码 - 请求EnhancedAirBookRQ时,UC SEG状态不允许 - 0003

我目前在PHP中使用CURL来请求XML.当在POSTMAN服务中使用相同的流程时,我可以获得成功结果,但是,当在PHP中使用CURL时,我得到CODE - UC SEG状态不允许 - 0003状态.下面是我的CURL请求标头和代码.CURL请求中的标题选项是否出现问题?

 function get_xml_response($xmldata) {
error_reporting(E_ALL);
$wsdl = 'https://sws3-crt.cert.sabre.com';

$header = array(
    "Content-type: text/xml;charset=\"utf-8\"",
    "Accept: text/xml",
    "Cache-Control: no-cache",
    "Pragma: no-cache",
    "SOAPAction: \"\"",
    "Content-length: " . strlen($xmldata),
);

$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, "$wsdl");
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_FRESH_CONNECT, TRUE);
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, $xmldata);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $header);

  if (curl_exec($soap_do) === false) {
    $err = 'Curl error: ' . curl_error($soap_do);
    curl_close($soap_do);
    print $err;
    return false;
  } else …
Run Code Online (Sandbox Code Playgroud)

php xml curl sabre

9
推荐指数
1
解决办法
1133
查看次数

Saber特殊字符

我正在使用 Sabre Web 服务 (SabreCommandLLSRQ) 构建低票价重新预订的 ac# 概念验证。

\n\n

我现在遇到了一些特殊的 saber 字符,我不知道它们在 C# 中是什么。我有一些正在工作,但我肯定会遇到更多 - 有人有 c# 的 saber 字符映射吗?

\n\n
private string BuildPriceLine()\n{\n    const char CHLOR = (char)0xE7;   // Cross-of-Lorraine\n    const char ENDITEM = (char)0xA7; // End Item key\n    const char CHGKEY = (char)0xA5;  // Change Key\n\n    var sabreCommand = new StringBuilder();\n\n    // WPRQ\xe2\x80\xa1AAA\xe2\x80\xa1UN*C123456\xe2\x80\xa1KP0\xe2\x80\xa1XP\xc2\xab\n    sabreCommand.Append("WPRQ");\n    sabreCommand.Append(CHLOR);\n    sabreCommand.Append("AAA");\n    sabreCommand.Append(CHLOR);\n    sabreCommand.Append("UN*C123456");\n    sabreCommand.Append(CHLOR);\n    sabreCommand.Append("KP0");\n    sabreCommand.Append(CHLOR);\n    sabreCommand.Append("XP");\n    sabreCommand.Append(WhatSabreCharIsThis); // "\xc2\xab" ?\n\n    return sabreCommand.ToString();\n}\n
Run Code Online (Sandbox Code Playgroud)\n

c# sabre

5
推荐指数
2
解决办法
2856
查看次数

如何从.NET调用Sabre EnhancedSeatMapRQ soap web服务?

我可以从SoapUI在TSTS环境中调用EnhancedSeatMapRQ.当我使用Visual Studio 2015生成的Soap代理进行相同的调用时,我得到null反序列化的Items部分.我还在ApplicationResults部分获得"已完成"(成功).我可以看到Fiddler这个调用实际上是成功的,而这个问题是由.Net反序列化造成的.

.net soap sabre

5
推荐指数
1
解决办法
436
查看次数

出现错误:提交 OTA_Airpice 后 NO FARES/RBD/CARRIER 146

当我拨打 OTA_Airprice 时出现错误:*NO FARES/RBD/CARRIER146

演示请求:

            <?xml version="1.0" encoding="utf-16"?>
        <OTA_AirPriceRQ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="2.6.0">
          <OriginDestinationInformation xmlns="http://webservices.sabre.com/sabreXML/2011/10">
            <FlightSegment ArrivalDateTime="2016-06-29T17:55" DepartureDateTime="2016-06-29T15:20" FlightNumber="1559" ResBookDesigCode="V">
              <DestinationLocation LocationCode="HKG" />
              <MarketingCarrier Code="UO" FlightNumber="1559" />
              <OriginLocation LocationCode="DAD" />
            </FlightSegment>
            <FlightSegment ArrivalDateTime="2016-07-06T14:45" DepartureDateTime="2016-07-06T14:05" FlightNumber="1558" ResBookDesigCode="V">
              <DestinationLocation LocationCode="DAD" />
              <MarketingCarrier Code="UO" FlightNumber="1558" />
              <OriginLocation LocationCode="HKG" />
            </FlightSegment>
          </OriginDestinationInformation>
          <PriceRequestInformation xmlns="http://webservices.sabre.com/sabreXML/2011/10">
            <OptionalQualifiers>
              <FlightQualifiers>
                <VendorPrefs>
                  <Airline Code="UO" />
                </VendorPrefs>
              </FlightQualifiers>
              <PricingQualifiers CurrencyCode="VND">
                <PassengerType Code="ADT" Quantity="1" />
              </PricingQualifiers>
            </OptionalQualifiers>
          </PriceRequestInformation>
        </OTA_AirPriceRQ> 
Run Code Online (Sandbox Code Playgroud)

数据响应:

        <?xml version="1.0" encoding="utf-16"?>
        <OTA_AirPriceRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="2.6.0">
            <ApplicationResults status="NotProcessed" xmlns="http://services.sabre.com/STL/v01">
                <Error type="BusinessLogic" …
Run Code Online (Sandbox Code Playgroud)

sabre

5
推荐指数
1
解决办法
705
查看次数

GetReservation 返回观众人数受限于 PNR

我目前正在使用 sabre Web 服务 TravelItineraryReadLLSRQ(版本 2.2.0),我可以成功检索 PNR 数据上的所有数据。现在我正在尝试实施 GetReservation,但出现以下错误。

没有从开发军刀门户找到任何进一步的细节 - 有没有人看到这个并知道“修复”是什么?

“PNR 的收视率受到限制,原因是 [PNR 的收视率受到限制(不支持的安全检查),代码:700102,严重性:中度]”

<GetReservationRS xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Errors xmlns="http://webservices.sabre.com/pnrbuilder/v1_18">
    <Error>
      <Code>700102</Code>
      <Message>Viewership is restricted for the PNR, caused by [Viewership is restricted for the PNR (Unsupported security check), code: 700102, severity: MODERATE]</Message>
      <Severity>MODERATE</Severity>
    </Error>
  </Errors>
</GetReservationRS>
Run Code Online (Sandbox Code Playgroud)

sabre

4
推荐指数
1
解决办法
711
查看次数

如何获得Sabre的WSDL

有谁知道如何通过Saber(https://developer.sabre.com/)获得SOAP服务的WSDL ?我完全坚持下去。

soap wsdl sabre

3
推荐指数
1
解决办法
3573
查看次数

元素上不允许有尾随固相线

我正在使用soap api在php中开发web应用程序.我有xml format as shown below把请求发送到api但是我在查看xml时遇到了像元素companyname上不允许Trailing solidus这样的错误postman.

<OTA_AirLowFareSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05" ResponseType="OTA" ResponseVersion="1.9.2" Version="1.9.2" AvailableFlightsOnly="true">
    <POS>
        <Source PseudoCityCode="PCC">
            <RequestorID ID="1" Type="1">
                <CompanyName Code="TN" />                            
            </RequestorID>                        
        </Source>                   

    </POS>
    <OriginDestinationInformation RPH="1">
        <DepartureDateTime>2016-03-15T11:00:00</DepartureDateTime>
        <OriginLocation LocationCode="KTM"/>
        <DestinationLocation LocationCode="DEL"/>
        <TPA_Extensions>
            <SegmentType Code="O"/>                        
        </TPA_Extensions>

    </OriginDestinationInformation>
    <TravelPreferences ValidInterlineTicket="true">
        <CabinPref PreferLevel="Preferred" Cabin="Y" />
        <TPA_Extensions>
            <TripType Value="Return" />
            <LongConnectTime Min="780" Max="1200" Enable="true" />
            <ExcludeCallDirectCarriers Enabled="true" />                        
        </TPA_Extensions>

    </TravelPreferences>
    <TravelerInfoSummary>
        <SeatsRequested>3</SeatsRequested>
        <AirTravelerAvail>
            <PassengerTypeQuantity Code="ADT" Quantity="2" />
            <PassengerTypeQuantity Code="CHD" Quantity="1" />                        
        </AirTravelerAvail>                    
    </TravelerInfoSummary>
    <TPA_Extensions>
        <IntelliSellTransaction>
            <RequestType Name="50ITINS" …
Run Code Online (Sandbox Code Playgroud)

php xml sabre

3
推荐指数
1
解决办法
4192
查看次数

取消完整的PNR

我正在编写一个自动取消某个队列上的PNR的服务.使用OTA_CancelLLSRQ请求听起来非常简单,但是看起来我必须单独遍历每个段,或者有没有办法可以一次性取消所有段?

在应用程序中我们定义了一个PNR类,该类包含我们可以通过""调用获得的所有信息.

要取消PNR,我目前使用以下代码:

MessageHeader msgHeader = new MessageHeader
{
    ConversationId = "TestSession",
    CPAId = licenseId,
    Action = "OTA_CancelLLSRQ",
    Service = new Service { Value = "OTA_CancelLLSRQ" },
    MessageData = new MessageData
    {
        MessageId = "xxx",
        Timestamp = DateTime.UtcNow.ToString("s") + "Z"
    },
    From = new From()
    {
        PartyId = new PartyId[]
        {
            new PartyId { Value = "WebServiceClient"}
        }
    },
    To = new To()
    {
        PartyId = new[]
        {
            new PartyId { Value = "WebServiceSupplier"}
        }
    }
};

var segmentList = …
Run Code Online (Sandbox Code Playgroud)

sabre

2
推荐指数
1
解决办法
1375
查看次数

如何在没有正则表达式的情况下解析它?

我的一个朋友说,如果我使用的正则表达式太长,那可能是错误的工具.有什么想法可以更好地解析这个文本吗?我有一个正则表达式,将所有内容返回到一个数组,我可以很容易地将其分块,但如果有另一种更简单的方法,我真的很想看到它.

这是它的样子:

 2 AB 123A 01JAN M ABCDEF AA1   100A  200A  02JAN T /ABCD /E    
Run Code Online (Sandbox Code Playgroud)

这是一个细分:

  • 2是行号,这些行从1一直到99.如果由于格式化而无法看到,则会有一个小于10的空格字符.

    该空间可能会或可能不会被替换 *

  • AB 是一个重要的数据单位(UOD).

    AB可以预先/CD设定另一个重要的UOD.

  • 123是一个重要的UOD.它的范围可以从1(前置4个空格)到99999.

  • A 是一个重要的UOD.

  • 01JAN 是一个日/月组合,我需要提取两个UOD.

  • M是一天的简称.这可能是1和之间的数字7.

  • ABC 是一个重要的UOD.

  • DEF 是一个重要的UOD.

    之后的空间DEF可能是一个*

  • AA1 可能是零个字符,或者它可能是5.它不重要.

  • 100A是时间戳,但可能是格式1300.该A可N当时间1200或P在下午的时间.

  • 然后我们看到另一个时间戳.

  • 下一个日期部分可能不在那里,例如,这是有效的:

    93*DE/QQ51234 30APR J QWERTY*QQ0   1250   0520 /ABCD*ASDFAS /E             
    
    Run Code Online (Sandbox Code Playgroud)
  • /ABCD*ASDFAS /E …

regex parsing text sabre

1
推荐指数
1
解决办法
668
查看次数

Sabre 主机命令 WPNCS 的 API 等效项

您能否帮我找到 Sabre 主机命令WPNCS 的等效 API (即使不可用也搜索最低票价)

但在 API 文档中找不到正确的请求

请帮忙!

sabre

1
推荐指数
1
解决办法
395
查看次数

Sabre 如何创建以儿童和/或婴儿为乘客的 PNR

当我尝试为儿童和/或婴儿乘客创建 PNR 时,我收到此错误,但是当它是仅限成人时,它工作正常。我读过他们的文档我不知道我做错了什么。请帮忙。

有效载荷:

<PassengerDetailsRQ version="3.2.0" HaltOnError="true" IgnoreOnError="false"  xmlns="http://services.sabre.com/sp/pd/v3_2">
<PostProcessing IgnoreAfter="false" RedisplayReservation="true" >
    <EndTransactionRQ>
        <EndTransaction Ind="true" ></EndTransaction>
        <Source ReceivedFrom="TEST" ></Source>
    </EndTransactionRQ>
</PostProcessing>
<PriceQuoteInfo>
    <Link NameNumber="1.1" Record="1" ></Link>
    <Link NameNumber="2.1" Record="1" ></Link>
    <Link NameNumber="3.1" Record="1" ></Link>
</PriceQuoteInfo>
<SpecialReqDetails>
    <SpecialServiceRQ>
        <SpecialServiceInfo>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-01-01" Gender="M" NameNumber="1.1" >
                    <GivenName>JOHN</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="1980-03-01" Gender="F" NameNumber="2.1" >
                    <GivenName>JANE</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
            <SecureFlight SegmentNumber="A" >
                <PersonName DateOfBirth="2006-03-01" Gender="M" NameNumber="3.1" >
                    <GivenName>CHILD</GivenName>
                    <Surname>DOE</Surname>
                </PersonName>
            </SecureFlight>
        </SpecialServiceInfo>
    </SpecialServiceRQ>
</SpecialReqDetails>
<TravelItineraryAddInfoRQ>
    <AgencyInfo> …
Run Code Online (Sandbox Code Playgroud)

soap sabre

1
推荐指数
1
解决办法
5834
查看次数

Sabre- BARGAIN FINDER MAX (OTA_AirLowFareSearchRQ) ResponseType=""

我目前正在为 Air(Flights) 开发 Sabre SOAP API,并使用 BargainFinderMax(OTA_AirLowFareSearchRQ) 来搜索航班可用性。所以在请求中,有一个参数ResponseType 定义了对请求数据的响应类型。我的问题是:是否有任何响应类型会带来基于价格分组的结果。例如:一个价格 = 1000 美元的组将包含多个航班选项(具有不同的时间)。目前,我只能获取 OTA 和 GIR 响应类型。其中显示了具有相同价格的不同行程,如下图所示: 在此处输入图片说明

它有两个行程,数据相同(价格相同)但行程不同。我实际上在寻找的是将具有相同价格的行程组合在一个元素中。如果我们发出 LOWFARESEARCH 请求并设置 SolutionResult="false",则与 TravelPort 中返回的响应相同。它给出了PricePoint结果,即以单个价格点分组的行程。这可以在军刀中实现吗?

api soap sabre

1
推荐指数
1
解决办法
795
查看次数

返回 javax.xml.soap.SOAPException 的原因:无法从 SOAP API 内部化消息

我正在使用与 Sabre SOAP API 集成的系统。从我的角度来看,它只是将格式正确的 XML(Content-Type标头设置为text/xml)发送到端点,作为响应,我得到另一个 XML。它可以工作,但是偶尔(我们发送的请求的一小部分)我会收到此错误:

要求:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <ns4:MessageHeader xmlns:ns4="http://www.ebxml.org/namespaces/messageHeader" xmlns:ns5="http://www.w3.org/1999/xlink" xmlns:ns6="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:ns7="http://www.opentravel.org/OTA/2002/11" xmlns:ns8="http://www.w3.org/2000/09/xmldsig#">
      <ns4:ConversationId>04f446900386013646690cc47a6a2880</ns4:ConversationId>
      <ns4:From>
        <ns4:PartyId ns4:type="urn:x12.org:IO5:01">999999</ns4:PartyId>
        <ns4:Role/>
      </ns4:From>
      <ns4:To>
        <ns4:PartyId ns4:type="urn:x12.org:IO5:01">123123</ns4:PartyId>
        <ns4:Role/>
      </ns4:To>
      <ns4:CPAId>CPAID</ns4:CPAId>
      <ns4:Service ns4:type="OTA"/>
      <ns4:Action>PassengerDetailsRQ</ns4:Action>
    </ns4:MessageHeader>
    <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
      <wsse:BinarySecurityToken EncodingType="wsse:Base64Binary" valueType="String">SECURITY_TOKEN_REMOVED</wsse:BinarySecurityToken>
    </wsse:Security>
  </soap:Header>
  <soap:Body>
    <PassengerDetailsRQ HaltOnError="false" version="3.2.0" xmlns="http://services.sabre.com/sp/pd/v3_2">
      <PostProcessing RedisplayReservation="true">
        <EndTransactionRQ>
          <EndTransaction Ind="true"/>
          <Source ReceivedFrom="APPNAME"/>
        </EndTransactionRQ>
      </PostProcessing>
    </PassengerDetailsRQ>
  </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

回复:

<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Header/>
  <soap-env:Body>
    <soap-env:Fault>
      <faultcode>soap-env:Client.InvalidEbXmlMessage</faultcode>
      <faultstring>Unable to internalize message</faultstring>
      <detail>
        <StackTrace>javax.xml.soap.SOAPException: Unable to internalize …
Run Code Online (Sandbox Code Playgroud)

xml soap sabre

1
推荐指数
1
解决办法
6879
查看次数

标签 统计

sabre ×13

soap ×5

xml ×3

php ×2

.net ×1

api ×1

c# ×1

curl ×1

parsing ×1

regex ×1

text ×1

wsdl ×1