无法在 Sabre 创建的 PNR 中更新乘客姓名

Posted

技术标签:

【中文标题】无法在 Sabre 创建的 PNR 中更新乘客姓名【英文标题】:Unable to update passenger name in created PNR at sabre 【发布时间】:2017-05-16 12:58:38 【问题描述】:

我正在开发 API 来更新乘客详细信息,例如 PNR 中的姓名和出生日期。 我关注了这个http://files.developer.sabre.com/doc/providerdoc/pnrservices/UpdateReservationRQ_1_15_0_User_Guide.pdf 请求xml

  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:v1="http://webservices.sabre.com/pnrbuilder/v1_15" xmlns:v11="http://services.sabre.com/res/or/v1_8">
   <soapenv:Header>
      <sec:Security xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext">
         <sec:BinarySecurityToken valueType="String" EncodingType="sec:Base64Binary">$#Project#sessionid</sec:BinarySecurityToken>
      </sec:Security>
      <eb:MessageHeader eb:version="2.0">
         <eb:From>
            <eb:PartyId type="urn:x12.org:IO5:01">999999</eb:PartyId>
         </eb:From>
         <eb:To>
            <eb:PartyId type="urn:x12.org:IO5:01">343434</eb:PartyId>
         </eb:To>
         <eb:CPAId>AB</eb:CPAId>
         <eb:ConversationId>test123</eb:ConversationId>
         <eb:Service eb:type="OTA">UpdateReservationRQ</eb:Service>
         <eb:Action>UpdateReservationRQ</eb:Action>
         <eb:MessageData>
            <eb:MessageId>1001</eb:MessageId>
            <eb:Timestamp>2017-01-10T10:00:00</eb:Timestamp>
            <eb:TimeToLive>2017-01-16T23:59:59</eb:TimeToLive>
         </eb:MessageData>
      </eb:MessageHeader>
   </soapenv:Header>
   <soapenv:Body>
    <v1:UpdateReservationRQ Version="1.15.0">
    <v1:RequestType>Stateless</v1:RequestType>
    <v1:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="true" />
    <v1:ReservationUpdateList>
        <v1:Locator>$#Project#pnr</v1:Locator>
            <v1:ReservationUpdateItem>
              <!--Optional:-->
                   <v1:PassengerNameUpdate op="U">
                      <!--Optional:-->
                      <v1:TravelerName type="ADT">
                         <!--Optional:-->
                        <v1:Given>Ramesh</v1:Given>
                         <v1:Surname>Tiwari</v1:Surname>                   
                      </v1:TravelerName>
                      <!--Optional:-->
                      <v1:NameAssociationTag>
                            <v1:LastName>Praveen</v1:LastName>
                            <v1:FirstName>Deshmukh</v1:FirstName>
                            <v1:NameRefNumber>01.01</v1:NameRefNumber>
                         </v1:NameAssociationTag>
                   </v1:PassengerNameUpdate>
                   <!--Optional:-->          
            </v1:ReservationUpdateItem>
        <v1:ReceivedFrom>
            <v1:AgentName>AESWSSELL1AEBG</v1:AgentName>
        </v1:ReceivedFrom>
    </v1:ReservationUpdateList>
</v1:UpdateReservationRQ>
</soapenv:Body>
</soapenv:Envelope>

但不断低于错误。

<soap-env:Body>
      <stl15:UpdateReservationRS xmlns:stl15="http://webservices.sabre.com/pnrbuilder/v1_15" xmlns:ns6="http://services.sabre.com/res/orr/v0" xmlns:raw="http://tds.sabre.com/itinerary" xmlns:or18="http://services.sabre.com/res/or/v1_8" xmlns:ns4="http://webservices.sabre.com/pnrconn/ReaccSearch">
         <stl15:Success>FALSE</stl15:Success>
         <stl15:Warnings>
            <stl15:Warning>
               <stl15:Message>PARTIAL ERROR</stl15:Message>
            </stl15:Warning>
         </stl15:Warnings>
         <stl15:Errors>
            <stl15:Error UpdateId="">
               <stl15:Code>500601</stl15:Code>
               <stl15:Message>UNABLE TO PROCESS</stl15:Message>
            </stl15:Error>
         </stl15:Errors>
         <stl15:Results/>
      </stl15:UpdateReservationRS>
   </soap-env:Body>

请帮助我找出请求中需要的哪些更改。

【问题讨论】:

【参考方案1】:

如果不知道承运人就很难判断,但是一旦 PNR 已“结束”并且定位器已归还,许多航空公司将不允许更改名称。

【讨论】:

【参考方案2】:

可以在创建的 PNR 中更新乘客详细信息。 在上述请求中,需要 PNR 创建日期才能完成此过程。

<stl1:Locator>XPKCGL</stl1:Locator>
                <stl1:CreateDate>2017-05-23</stl1:CreateDate>

以下是完整的请求。

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:ns1="http://webservices.sabre.com/pnrbuilder/getres" xmlns:ns12="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns13="http://www.w3.org/1999/xlink" xmlns:ns14="http://www.w3.org/2000/09/xmldsig#" xmlns:or="http://services.sabre.com/res/or/v1_8" xmlns:ota="http://webservices.sabre.com/sabreXML/2003/07" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:stl1="http://webservices.sabre.com/pnrbuilder/v1_15" xmlns:stl2="http://services.sabre.com/STL/v01" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace">
    <SOAP-ENV:Header>
        <sec:Security xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext">
         <sec:BinarySecurityToken valueType="String" EncodingType="sec:Base64Binary">$#Project#sectoken</sec:BinarySecurityToken>
       </sec:Security>
        <MessageHeader xmlns="http://www.ebxml.org/namespaces/messageHeader" version="1.0">
            <eb:From>
                <eb:PartyId type="urn:x12.org:IO5:01">99935345999</eb:PartyId>
            </eb:From>
            <eb:To>
                <eb:PartyId type="urn:x12.org:IO5:01">344535</eb:PartyId>
            </eb:To>
            <eb:CPAId>AB</eb:CPAId>
            <eb:ConversationId>cpm23432</eb:ConversationId>
            <eb:Service type="OTA">UpdateReservationOperation</eb:Service>
            <eb:Action>UpdateReservationRQ</eb:Action>
            <eb:MessageData>
                <eb:MessageId>608926</eb:MessageId>
                <eb:Timestamp>2017-05-22T15:49:07Z</eb:Timestamp>
            </eb:MessageData>
        </MessageHeader>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        <stl1:UpdateReservationRQ xmlns="http://webservices.sabre.com/pnrbuilder/v1_15" Version="1.15.0">
            <stl1:RequestType>Stateless</stl1:RequestType>
            <stl1:ReturnOptions IncludeUpdateDetails="true" RetrievePNR="true" />
            <stl1:ReservationUpdateList>
                <stl1:Locator>XPKCGL</stl1:Locator>
                <stl1:CreateDate>2017-05-23</stl1:CreateDate>
                <stl1:ReservationUpdateItem UpdateId="ID-1">
                    <stl1:PassengerNameUpdate op="U">
                        <stl1:TravelerName type="ADT" referenceId="1">
                            <stl1:Given>RamRaj</stl1:Given>
                            <stl1:Surname>Des</stl1:Surname>
                        </stl1:TravelerName>
                        <stl1:NameAssociationTag>
                            <stl1:LastName>DESHMUKH</stl1:LastName>
                            <stl1:FirstName>PRAVEEN</stl1:FirstName>
                            <stl1:NameRefNumber>01.01</stl1:NameRefNumber>
                        </stl1:NameAssociationTag>
                    </stl1:PassengerNameUpdate>
                </stl1:ReservationUpdateItem>
                <stl1:ReceivedFrom>
                    <stl1:AgentName>CPM MBE</stl1:AgentName>
                </stl1:ReceivedFrom>
            </stl1:ReservationUpdateList>
        </stl1:UpdateReservationRQ>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

【讨论】:

以上是关于无法在 Sabre 创建的 PNR 中更新乘客姓名的主要内容,如果未能解决你的问题,请参考以下文章

创建 Pnr 乘客详细信息 RQ 无法正常工作

如何通过 sabre api 删除 pnr?

错误:在 Sabre 发送 CreatePassengerNameRecordRS 请求时出现 ERR.SP.BUSINESS_ERROR

有没有办法在 sabre api 中检查或创建保留线?

使用带有 floccus 的 sabre/dav 服务器

用于检查铁路 PNR 状态和火车查询的 iPhone 应用程序 [关闭]