Sabre - 申请 Void 机票需要几步?

问题描述

我在请求无效机票时遇到问题。在申请无效票之前,我需要先做什么?我已经尝试过我的工作流程如下:

SessionCreateRQ => TravelItineraryReadRQ => VoidTicketLLSRQ => EndTransactionLLSRQ

无效票请求:

{{soapHeader}}
<soapenv:Body>
        <ns:VoidTicketRQ  Version="2.1.0">
            <ns:Ticketing  eTicketNumber="8165070132526"/>
        </ns:VoidTicketRQ>
</soapenv:Body>
{{soapFooter}}

无效票响应:

<soap-env:Body>
        <VoidTicketRS xmlns="http://webservices.sabre.com/sabreXML/2011/10" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stl="http://services.sabre.com/STL/v01" Version="2.1.0">
            <stl:ApplicationResults status="NotProcessed">
                <stl:Error type="BusinessLogic" timeStamp="2021-06-30T22:55:13-05:00">
                    <stl:SystemSpecificResults>
                        <stl:Message>NO TCN/AT NBR MATCH-VERIFY-POSSIBLE MANUAL RFND required-0093</stl:Message>
                        <stl:ShortText>ERR.SWS.HOST.ERROR_IN_RESPONSE</stl:ShortText>
                    </stl:SystemSpecificResults>
                </stl:Error>
            </stl:ApplicationResults>
        </VoidTicketRS>
</soap-env:Body>

解决方法

要取消门票,您需要执行以下步骤:

  • 使用 SessionCreateRQ 打开会话。请注意,您作废 出票的同一 PCC 中的票。您可以使用 ContextChangeLLSRQ 切换上下文。
  • 您可能还需要指定带有 DesignatePrinterLLSRQ 的票据打印机。
  • 使用 TravelItineraryReadRQGetReservationRQ 将预订加载到会话中。

现在您可以调用 void 方法。 void操作分两步,所以必须调用两次void方法来确认void。

在无效请求中,您使用 eTicketNumber。正如 Sabre 文档所述 (https://developer.sabre.com/docs/soap_apis/air/fulfill/Void_Air_Ticket):

请注意@eTicketNumber 仅适用于 Sabre Sonic Res 托管的客户端

也许,这就是您收到错误的原因。您可以改用 RPH。 RPH 是 TicketingInfo/TicketDetails/TicketNumber 节点的“索引”属性。

还要考虑作废机票不会自动取消预订,因此您可能需要使用 OTA_CancelLLSRQ 方法来完全完成无效过程。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...