Sabre检索行程Soap API错误

时间:2018-01-25 14:13:01

标签: xml sabre

我正在使用saber soap api来检索PNR。但是面对以下错误在EbxmlMessage中指定的操作不存在。wsdl中所述,soap操作是 GetReservationOperation 。但我不知道它为什么会返回无效的行动。 我正在使用rest api进行搜索Bargain finder max和PNR创建乘客记录。因为没有休息时可以获得行程,所以这就是我使用Soap API的原因。这会导致任何问题。 如果您有任何想法,请告诉我

请求:

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext"
    xmlns:mes="http://www.ebxml.org/namespaces/messageHeader"
    xmlns:v1="http://webservices.sabre.com/pnrbuilder/v1_17"
    xmlns:v11="http://services.sabre.com/res/or/v1_11">
    <soapenv:Header>
        <sec:Security>
            <sec:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/RESA!ICESMSLB\/RES.LB!-3185560751641243001!1025760!0</sec:BinarySecurityToken>
        </sec:Security>
        <mes:MessageHeader mes:id="?" mes:version="2.0">
            <mes:From>
                <mes:PartyId mes:type="urn:x12.org:IO5:01">99999</mes:PartyId>
            </mes:From>
            <mes:To>
                <mes:PartyId mes:type="urn:x12.org:IO5:01">1231231</mes:PartyId>
            </mes:To>
            <mes:CPAId>ipcc</mes:CPAId>
            <mes:ConversationId>ID</mes:ConversationId>
            <mes:Service mes:type="?">GetReservationOperation</mes:Service>
            <mes:Action>GetReservationOperation</mes:Action>
            <mes:MessageData>
                <mes:MessageId>1000</mes:MessageId>
                <mes:Timestamp>2018-01-25T10:00:00</mes:Timestamp>
                <mes:TimeToLive>2018-01-25T12:00:00</mes:TimeToLive>
            </mes:MessageData>
        </mes:MessageHeader>
    </soapenv:Header>
    <soapenv:Body>
        <v1:GetReservationRQ Version="1.17.0" EchoToken="?">
            <v1:Locator>VKSLRM</v1:Locator>
            <v1:RequestType>Stateless</v1:RequestType>
            <v1:ReturnOptions>
                <v1:ViewName>Full</v1:ViewName>
                <v1:ResponseFormat>STL</v1:ResponseFormat>
            </v1:ReturnOptions>
        </v1:GetReservationRQ>
    </soapenv:Body>
</soapenv:Envelope>

响应:

<soap-env:Envelope
    xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header>
        <eb:MessageHeader eb:version="1.0" soap-env:mustUnderstand="1"
            xmlns:eb="http://www.ebxml.org/namespaces/messageHeader">
            <eb:From>
                <eb:PartyId eb:type="urn:x12.org:IO5:01">1231231</eb:PartyId>
            </eb:From>
            <eb:To>
                <eb:PartyId eb:type="urn:x12.org:IO5:01">99999</eb:PartyId>
            </eb:To>
            <eb:CPAId>ipcc</eb:CPAId>
            <eb:ConversationId>ID</eb:ConversationId>
            <eb:Service eb:type="?">GetReservationOperation</eb:Service>
            <eb:Action>ErrorRS</eb:Action>
            <eb:MessageData>
                <eb:MessageId>5618033481599870201</eb:MessageId>
                <eb:Timestamp>2018-01-25T13:22:39</eb:Timestamp>
                <eb:RefToMessageId>1000</eb:RefToMessageId>
            </eb:MessageData>
        </eb:MessageHeader>
        <wsse:Security
            xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
            <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/RESA!ICESMSLB\/RES.LB!-3185560751641243001!1025760!0</wsse:BinarySecurityToken>
        </wsse:Security>
    </soap-env:Header>
    <soap-env:Body>
        <soap-env:Fault>
            <faultcode>soap-env:Client.InvalidAction</faultcode>
            <faultstring>Action specified in EbxmlMessage does not exist.</faultstring>
            <detail>
                <StackTrace>com.sabre.universalservices.base.exception.ApplicationException: errors.xml.USG_INVALID_ACTION</StackTrace>
            </detail>
        </soap-env:Fault>
    </soap-env:Body>
</soap-env:Envelope>

2 个答案:

答案 0 :(得分:3)

getReservationRQ的正确操作代码是&#34; getReservationRQ&#34;。

https://developer.sabre.com/docs/read/soap_apis/management/itinerary/retrieve_itinerary

答案 1 :(得分:-1)

拼写应正确且区分大小写 getReservationRQ

有状态应为请求类型。