Веб-служба бронирования
Содержание
Запросы
- Запрос на бронирование
- Односторонний перелет. Бронирование
- Бронирование через TravellerId
Общий формат запроса / ответа
Получить доступ к результатам бронирования в данном сервисе можно через SOAP клиента. Для получения результата необходим параметр - «FlightId» - Id перелёта, для которого будет производится бронирование. WSDL находится по адресу: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=BookFlight.
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:BookFlight>
5 <RequestBin>
6 <Request>
7 <BookFlight>
8 <FlightId>?</FlightId>
9 <!--FlightId - Id перелёта в системе Немо-->
10 <!--Optional:-->
11 <ValidatingCompany>?</ValidatingCompany> <!--необязательный-->
12 <!--ValidatingCompany - валидирующий перевозчик (тот кто выписывает билет)-->
13 <!--Optional:-->
14 <BookingCodes>
15 <!--Zero or more repetitions:-->
16 <BookingCode Code="?" SegNumber="?"/>
17 <!--Code - код класса перелёта-->
18 <!--SegNumber - номер сегмента в перелёте (начинаются с 1)-->
19 </BookingCodes>
20 <!--Optional:-->
21 <CurrencyCode>?</CurrencyCode> <!--необязательный-->
22 <!--CurrencyCode - код валюты-->
23 <!--Optional:-->
24 <TicketTimeLimit>?</TicketTimeLimit> <!--необязательный-->
25 <!--TicketTimeLimit - таймлимит на оплату, формат: ГГГГ-ММ-ДДTЧЧ:ММ:СС-->
26 <!--Optional:-->
27 <Agency Name="?"> <!--необязательный-->
28 <!--Name - название агентства-->
29 <Telephone Type="?">
30 <!--Type - тип номера, обязательный, возможные значения:
31 M - мобильный, H - домашний, B - рабочий, A - агенство-->
32 <!--Optional:-->
33 <PhoneNumber>?</PhoneNumber>
34 <!--PhoneNumber - номер телефона-->
35 <!--Optional:-->
36 <CountryAccessCode>?</CountryAccessCode> <!--необязательный-->
37 <!--CountryAccessCode - код страны-->
38 <!--Optional:-->
39 <AreaCityCode>?</AreaCityCode> <!--необязательный-->
40 <!--AreaCityCode - код региона/города-->
41 </Telephone>
42 <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
43 <!--City - город-->
44 <!--State - штат-->
45 <!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)-->
46 <!--PostalCode - почтовый индекс-->
47 <!--CountryCode - код страны (RU, UA и т.п.)-->
48 </Agency>
49 <Travellers>
50 <!--Zero or more repetitions:-->
51 <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
52 <!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые,
53 CNN - дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом-->
54 <!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
55 контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
56 может быть контактным лицом, по умолчанию false-->
57 <!--Num - порядковый номер пассажира, начинается с 1-->
58 <!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок--> <!--необязательный-->
59 <!--TravellerId - индивидуальный номер пассажира--> <!--необязательный-->
60 <Meal>?</Meal> <!--необязательный-->
61 <!--Meal - код типа питания, возможные значения:
62 NONE - отсутствует
63 AVML - Азиатская вегетарианская кухня
64 BLML - Блюда щадящей диеты
65 CHML - Детское питание
66 CHPC - Детский холодный завтрак
67 СНСС - Детский горячий завтрак
68 CHHC - Детский ланч, ветчина и сыр
69 PBJS - Детский ланч, ореховое масло
70 CHMC - Детский обед макароны с сыром
71 DBML - Диабетическое питание
72 FPML - Фрукты
73 GFML - Питание без клейковины
74 HFML - Питание богатое клетчаткой
75 HNML - Индусская кухня
76 BBML - Питание для младенцев
77 KSML - Кошерная кухня
78 SMKB - Кошерный завтрак
79 SMKL - Кошерный ланч
80 SMKD - Кошерный обед
81 LPML - Малобелковое питание
82 LCML - Низкокалорийное питание
83 LFML - Низкохолестериновое питание
84 PRML - Низкопуриновое питание
85 LSML - Малосоленое питание
86 MOML - Мюсли
87 NLML - Безмолочные продукты
88 ORML - Восточная кухня
89 RVML - Сырые овощи
90 SFML - Морепродукты
91 SPML - Особое питание
92 VLML - Вегетарианское, молоко и яйца
93 VGML - Строго вегетарианское питание
94 VJML - Джайнизское вегетарианское
95 VOML - Восточное вегетарианское питание-->
96 <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
97 <!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
98 <!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
99 <!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
100 <FirstName>?</FirstName>
101 <!--FirstName - имя пассажира-->
102 <LastName>?</LastName>
103 <!--LastName - фамилия пассажира-->
104 <!--Optional:-->
105 <MiddleName>?</MiddleName> <!--необязательный-->
106 <!--MiddleName - отчество пассажира-->
107 </PersonalInfo>
108 <LoyaltyCard OpCode="?" Number="?"/> <!--необязательный-->
109 <!--OpCode - код авиакомпании-->
110 <!--Number - номер карточки-->
111 <ContactInfo> <!--необязательный-->
112 <!--Optional:-->
113 <EmailID>?</EmailID>
114 <!--EmailID - контактный email-->
115 <!--Optional:-->
116 <Telephone Type="?">
117 <!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
118 <!--Optional:-->
119 <PhoneNumber>?</PhoneNumber>
120 <!--PhoneNumber - номер телефона-->
121 <!--Optional:-->
122 <CountryAccessCode>?</CountryAccessCode>
123 <!--CountryAccessCode - код страны-->
124 <!--Optional:-->
125 <AreaCityCode>?</AreaCityCode>
126 <!--AreaCityCode - код региона/города-->
127 </Telephone>
128 </ContactInfo>
129 <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
130 <!--DocType - тип документа, возможные значения:
131 Р - Паспорт
132 A – Паспорт иностранца
133 С - Внутренний гражданский паспорт
134 F – Документ заменяющий паспорт
135 М - Воинское удостоверение
136 N – Сертификат натурализации(специфичный документ США)
137 T – Док.повторного въезда, паспорт беженца
138 V – Документ для пересечения границы-->
139 <!--DocNum - номер документа-->
140 <!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
141 <!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
142 <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
143 <!--необязательный-->
144 <!--Num - номер визы-->
145 <!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы-->
146 <!--IssueCountry - страна выдачи визы-->
147 <!--IssuePlace - место выдачи визы-->
148 <!--BirthCountry - страна рождения(IATA код страны)-->
149 <!--BirthCity - город рождения(название)-->
150 <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <!--необязательный-->
151 <!--City - город-->
152 <!--State - штат или область въезда-->
153 <!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.-->
154 <!--PostalCode - почтовый код-->
155 <!--CountryCode - код страны-->
156 <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
157 <!--необязательный-->
158 <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
159 <!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих-->
160 <!--Location - положение места в ряде, возможные значения:
161 W - у окна (Window)
162 M - где-то в середине ряда (Middle)
163 NPW - возле прохода (NearPassengerWay)
164 NS - нет предпочтения (NotSpecified)-->
165 <!--RowNumber - номер ряда-->
166 <!--PlaceNumber - номер места-->
167 <!--SegNumber - номер сегмента-->
168 <DocStringFormats>
169 <!--Zero or more repetitions:-->
170 <DocStringFormat>?</DocStringFormat>
171 <!--DocStringFormat - формат паспортной строки, возможные значения:
172 DOCS - строка формата DOCS, FOID - строка формата FOID-->
173 </DocStringFormats>
174 </Traveller>
175 </Travellers>
176 <!--Optional:-->
177 <QueueNum>?</QueueNum> <!--необязательный-->
178 <!--QueueNum - номер очереди, в которую необходимо поместить бронирование-->
179 </BookFlight>
180 </Request>
181 <Source>
182 <ClientId>?</ClientId>
183 <!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
184 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
185 <APIKey>?</APIKey>
186 <!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
187 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
188 <Language>?</Language>
189 <!--Language - язык-->
190 <Currency>?</Currency>
191 <!-- CUrrency - валюта-->
192 </Source>
193 </RequestBin>
194 </ver:BookFlight>
195 </soapenv:Body>
196 </soapenv:Envelope>
Ответ
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://trunk.mlsd.ru/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body> <ns1:BookFlightResponse> <ResponseBin> <Response> <BookFlight ID="?" Status="?" Code="?"> <QueryPlace xsi:nil="true"/> <Flight FlightId="?"> <WebService>?</WebService> <ValCompany>?</ValCompany> <URL>?</URL> <Segments> <Segment SegNum="?" SegGroupNum="?"> <DepAirp CodeType="IATA">?</DepAirp> <DepTerminal>?</DepTerminal> <ArrAirp CodeType="IATA">?</ArrAirp> <ArrTerminal>?</ArrTerminal> <OpAirline>?</OpAirline> <MarkAirline>?</MarkAirline> <FlightNumber>?</FlightNumber> <AircraftType>?</AircraftType> <DepDateTime>?</DepDateTime> <ArrDateTime>?</ArrDateTime> <StopNum>?</StopNum> <BookingCodes> <BookingCode ClassType="?"> <BookingCode>?</BookingCode> </BookingCode> </BookingCodes> <FlightTime>?</FlightTime> <TimeZone Departure="?" Arrival="?"/> <ETicket>?</ETicket> </Segment> </Segments> <PricingInfo Refundable="?"> <PassengerFare Type="?" Quantity="?"> <BaseFare Currency="?" Amount="?"/> <EquiveFare Currency="?" Amount="?"/> <TotalFare Currency="?" Amount="?"/> <Taxes> <Tax CurCode="?" TaxCode="?" Amount="?"/> </Taxes> <Tariffs> <Tariff Code="?" SegNum="?"/> </Tariffs> <FareCalc>?</FareCalc> <LastTicketDateTime>?</LastTicketDateTime> </PassengerFare> </PricingInfo> <Commission/> <Charges Currency="?">?</Charges> <TotalPrice Currency="?">?</TotalPrice> </Flight> <Agency Name="?"> <Telephone Type="?"> <PhoneNumber>?</PhoneNumber> <CountryAccessCode>?</CountryAccessCode> <AreaCityCode>?</AreaCityCode> </Telephone> <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
</Agency>
<ItinReceipts Encoding="?" Format="?"> <FareStored xsi:nil="true"/> <Travellers> <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?"> <Meal>?</Meal> <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?"> <FirstName>?</FirstName> <LastName>?</LastName> <MiddleName>?</MiddleName> </PersonalInfo> <LoyaltyCard OpCode="?" Number="?"/> <ContactInfo> <EmailID>?</EmailID> <Telephone Type="?"> <PhoneNumber>?</PhoneNumber> <CountryAccessCode>?</CountryAccessCode> <AreaCityCode>?</AreaCityCode> </Telephone> </ContactInfo> <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/> <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/> <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/> <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/> <DocStringFormats> <DocStringFormat>?</DocStringFormat> </DocStringFormats> </Traveller> </Travellers> </BookFlight> <Requisites/> <RequestType xsi:nil="true"/> <UserID xsi:nil="true"/> <Errors> <Error Code="?"> <ServiceErrorMessage>?</ServiceErrorMessage> <Message>?</Message> </Error> </Errors> </Response> </ResponseBin> </ns1:BookFlightResponse> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>