军刀航空预订api

时间:2016-12-21 08:23:27

标签: soap air

我发送请求通过SOAP UI获取CreatePassengerNameRecordRQ(PNR)。当我发布请求时,我正面临一些标题问题。我的要求如下:

<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:v3="http://services.sabre.com/sp/eab/v3_2">
   <soapenv:Header>
      <sec:Security>
        <sec:BinarySecurityToken>XXXXXXXXXXXXXXXXXXXXX</sec:BinarySecurityToken>
      </sec:Security>
      <mes:MessageHeader>
         <mes:From>
            <!--1 or more repetitions:-->
            <mes:PartyId mes:type="urn:x12.org:IO5:01">from</mes:PartyId>
         </mes:From>
         <mes:To>
            <!--1 or more repetitions:-->
            <mes:PartyId mes:type="urn:x12.org:IO5:01">ws</mes:PartyId>
         </mes:To>
         <mes:CPAId>XXXX</mes:CPAId>
         <mes:ConversationId>XXXXXXXXXXXXX</mes:ConversationId>
         <mes:Service mes:type="sabreXML">sabreXML</mes:Service>
         <mes:Action>CreatePassengerNameRecordRQ</mes:Action>
         <mes:MessageData>
            <mes:MessageId>00000</mes:MessageId>
            <mes:Timestamp>233</mes:Timestamp>

         </mes:MessageData>

         <!--Zero or more repetitions:-->
         <mes:Description xml:lang="en-US">Testing</mes:Description>
         <!--You may enter ANY elements at this point-->
      </mes:MessageHeader>
   </soapenv:Header>
   <soapenv:Body>

<CreatePassengerNameRecordRQ xmlns="http://services.sabre.com/sp/reservation/v1" targetCity="IH9A">
    <Profile>
        <UniqueID ID="ABCDEF123454" />
    </Profile>
    <AirBook>
        <OriginDestinationInformation>
            <FlightSegment ArrivalDateTime="2016-12-25T08:28:00" DepartureDateTime="2016-12-25T06:20:00" FlightNumber="1479" NumberInParty="1" ResBookDesigCode="S" Status="NN">
                <DestinationLocation LocationCode="LAX" />
                <MarketingAirline Code="F9" FlightNumber="1479" />
                <MarriageGrp>O</MarriageGrp>
                <OriginLocation LocationCode="ATL" />
            </FlightSegment>
        </OriginDestinationInformation>
    </AirBook>
    <AirPrice>
        <PriceRequestInformation>
            <OptionalQualifiers>
                <PricingQualifiers>
                    <SpanishLargeFamilyDiscountLevel>1</SpanishLargeFamilyDiscountLevel>
                </PricingQualifiers>
            </OptionalQualifiers>
        </PriceRequestInformation>
    </AirPrice>
    <MiscSegment DepartureDateTime="2013-10-29" NumberInParty="1" Status="NN" Type="OTH">
        <OriginLocation LocationCode="ATL" />
        <Text>TEST</Text>
        <VendorPrefs>
            <Airline Code="F9" />
        </VendorPrefs>
    </MiscSegment>
    <SpecialReqDetails>
        <AddRemark>
            <RemarkInfo>
                <FOP_Remark Type="CHECK">
                    <CC_Info Suppress="true">
                        <PaymentCard AirlineCode="F9" CardSecurityCode="1234" Code="VI" ExpireDate="2017-12" ExtendedPayment="12" ManualApprovalCode="123456" Number="4123412341234123" SuppressApprovalCode="true" />
                    </CC_Info>
                </FOP_Remark>
                <FutureQueuePlaceRemark Date="12-21" PrefatoryInstructionCode="11" PseudoCityCode="IPCC1" QueueIdentifier="499" Time="06:00" />
                <Remark Type="Historical">
                    <Text>TEST HISTORICAL REMARK</Text>
                </Remark>
                <Remark Type="Invoice">
                    <Text>TEST INVOICE REMARK</Text>
                </Remark>
                <Remark Type="Itinerary">
                    <Text>TEST ITINERARY REMARK</Text>
                </Remark>
                <Remark Type="Hidden">
                    <Text>TEST HIDDEN REMARK</Text>
                </Remark>
            </RemarkInfo>
        </AddRemark>
        <AirSeat>
            <Seats>
                <Seat NameNumber="1.1" Preference="AN" SegmentNumber="1" />
                <Seat NameNumber="2.1" Preference="AN" SegmentNumber="1" />
                <Seat NameNumber="3.1" Preference="AN" SegmentNumber="1" />
            </Seats>
        </AirSeat>
        <SpecialService>
            <SpecialServiceInfo>
                <Service SSR_Code="OSI">
                    <PersonName NameNumber="1.1" />
                    <Text>TEST1</Text>
                    <VendorPrefs>
                        <Airline Code="UA" />
                    </VendorPrefs>
                </Service>
            </SpecialServiceInfo>
        </SpecialService>
    </SpecialReqDetails>
    <PostProcessing RedisplayReservation="true">
        <ARUNK/>
        <QueuePlace>
            <QueueInfo>
                <QueueIdentifier Number="100" PrefatoryInstructionCode="11" />
            </QueueInfo>
        </QueuePlace>
        <EndTransaction>
            <Source ReceivedFrom="BRANDON STEELE" />
        </EndTransaction>
    </PostProcessing>
    </CreatePassengerNameRecordRQ>
   </soapenv:Body>
</soapenv:Envelope>

我得到的答复如下:

<soap-env:Fault>
     <faultcode>soap-env:Client</faultcode>
     <faultstring>SabreHeader/Service missing or incomplete</faultstring>
     <detail>
        <ns2:ApplicationResults status="NotProcessed" xmlns:ns2="http://services.sabre.com/STL_Payload/v02_01">
           <ns2:Error type="Validation" timeStamp="2016-12-21T01:31:06.658-06:00">
              <ns2:SystemSpecificResults>
                 <ns2:Message code="ERR.SP.CLIENT.INVALID_REQUEST">SabreHeader/Service missing or incomplete</ns2:Message>
              </ns2:SystemSpecificResults>
           </ns2:Error>
        </ns2:ApplicationResults>
     </detail>
</soap-env:Fault>

1 个答案:

答案 0 :(得分:0)

在CreatePassengerNameRecordRQ标题中指定版本:

<CreatePassengerNameRecordRQ xmlns="http://services.sabre.com/sp/reservation/v1" targetCity="IH9A" version="1.0.0">