2017-02-16 2 views
1

Я реализую Amadeus PNR Retrieve используя C# .net.Amadeus PNR Retrieve

При обработке ответа PNR, пытаясь сопоставить данные о пассажирах с нашей внутренней системой. Я использовал travellerInfo.elementManagementPassenger.reference.number в качестве связующего звена между пассажиром Amadeus и пассажиром внутреннего пассажирского салона.

Ниже, если в нем есть младенец вместе с двумя взрослыми. Здесь запись младенца приходит вместе с одним из взрослых и не содержит отдельной ссылки для младенца. Кто-нибудь имеет представление об идентификации всех пассажиров уникально?

<travellerInfo> 
<elementManagementPassenger> 
     <reference> 
     <qualifier>PT</qualifier> 
     <number>2</number> 
     </reference> 
     <segmentName>NM</segmentName> 
     <lineNumber>1</lineNumber> 
</elementManagementPassenger> 
<enhancedPassengerData> 
     <enhancedTravellerInformation> 
     <travellerNameInfo> 
      <quantity>1</quantity> 
      <infantIndicator>1</infantIndicator> 
     </travellerNameInfo> 
     <otherPaxNamesDetails> 
      <nameType>UN</nameType> 
      <referenceName>Y</referenceName> 
      <displayedName>Y</displayedName> 
      <surname>TESTER</surname> 
      <givenName>TEST MR</givenName> 
     </otherPaxNamesDetails> 
     </enhancedTravellerInformation> 
    </enhancedPassengerData> 
    <enhancedPassengerData> 
     <enhancedTravellerInformation> 
     <travellerNameInfo> 
      <quantity>1</quantity> 
      <type>INF</type> 
     </travellerNameInfo> 
     <otherPaxNamesDetails> 
      <nameType>UN</nameType> 
      <referenceName>Y</referenceName> 
      <displayedName>Y</displayedName> 
      <surname>TESTER</surname> 
      <givenName>TEST1 MSTR</givenName> 
     </otherPaxNamesDetails> 
     </enhancedTravellerInformation> 
    </enhancedPassengerData> 
</travellerInfo> 
<travellerInfo> 
    <elementManagementPassenger> 
     <reference> 
     <qualifier>PT</qualifier> 
     <number>1</number> 
     </reference> 
     <segmentName>NM</segmentName> 
     <lineNumber>2</lineNumber> 
    </elementManagementPassenger> 
    <enhancedPassengerData> 
     <enhancedTravellerInformation> 
     <travellerNameInfo> 
      <quantity>1</quantity> 
     </travellerNameInfo> 
     <otherPaxNamesDetails> 
      <nameType>UN</nameType> 
      <referenceName>Y</referenceName> 
      <displayedName>Y</displayedName> 
      <surname>TESTER</surname> 
      <givenName>TEST3 MRS</givenName> 
     </otherPaxNamesDetails> 
     </enhancedTravellerInformation> 
    </enhancedPassengerData> 
</travellerInfo> 

Стоимость Информация

<referenceForTstData> 
    <reference> 
    <qualifier>PT</qualifier> 
    <number>1</number> 
    </reference> 
    <reference> 
    <qualifier>ST</qualifier> 
    <number>1</number> 
    </reference> 
    <reference> 
    <qualifier>ST</qualifier> 
    <number>2</number> 
    </reference> 
</referenceForTstData> 

ответ

0

Я связался с технической поддержкой Amadeus и ниже решение

В дополнение к проверке referenceForTstData, необходимо проверить fareBasisInfo элемент под tstData. Он содержит ticketDesignator, который будет CH для детей и INF для младенцев

<fareBasisInfo> 
     <fareElement> 
     <primaryCode>xxx</primaryCode> 
     <notValidBefore>xxx</notValidBefore> 
     <notValidAfter>xxx</notValidAfter> 
     <baggageAllowance>1PC</baggageAllowance> 
     <fareBasis>2KU</fareBasis> 
     <ticketDesignator>CH</ticketDesignator> 
     </fareElement>   
    </fareBasisInfo> 
2

Младенцы относятся к детям в возрасте до 2, и PNRs может иметь 2 типа детей: LAP младенцев (с пассажирским типа Code = INF), которые сидят на коленях взрослого пассажира на время полета, а также младенцев со своим местом (INS).

Здесь вы видите младенца типа INF, который разделяет место своего родителя. Поскольку у них нет своего места, они не являются истинным пассажиром в записи, это просто расширение взрослого пассажира. У них также нет своего идентификатора путешественника. Любые услуги, необходимые для ребенка, должны быть связаны с идентификатором путешественника родителя.

Вы можете увидеть это гораздо более четко, если вы извлечете запись, используя Sandbox Travel Record API.

+0

Отлично! Другая проблема заключается в попытке связать стоимость. У меня есть случай, когда у младенца есть некоторая стоимость (обновлен вопрос с образцом), а «referenceForTstData» содержит ссылочный номер оригинального взрослого, поэтому не уверен, как дифференцировать fareData, связанную со взрослым или младенцем. Спасибо –

+0

Каждый тариф содержит код пассажира (PTC) путешественника. Стоимость проезда с PTC = ADT - тариф для взрослого, тариф с PTC = INF - это тариф для младенца. – Tadhg

+0

Спасибо, вы знаете, где эта информация может быть найдена в xml в разделе 'tstData'. Не удалось распознать аналогичные документы? –

Смежные вопросы