Веб-служба бронирования
Версия от 12:18, 15 марта 2014; Алексей Петрик (обсуждение | вклад)
Содержание
Подключение
Получить доступ к результатам бронирования в данном сервисе можно через 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://CLIENT_DOMAIN/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>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:BookFlightResponse>
4 <ResponseBin>
5 <Response>
6 <BookFlight ID="?" Status="?" Code="?">
7 <!--ID - Id брони в системе немо, целое число, обязательный-->
8 <!--Status - индикатор состояния брони, возможные значения:
9 booked - забронировано,
10 canceled - бронь отменена,
11 ticket - выписана
12 UNDEFINED - статус не определён-->
13 <!--Code - код брони в системе поставщика-->
14 <QueryPlace xsi:nil="true"/>
15 <!--QueryPlace - положение брони в очереди, Number - номер брони в очереди-->
16 <Flight FlightId="?">
17 <!--FlightId - Id перелёта в системе Nemo-->
18 <WebService>?</WebService>
19 <!--WebService - поставщик перелёта-->
20 <ValCompany>?</ValCompany>
21 <!--ValCompany - код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
22 <URL>?</URL>
23 <!--URL - ссылка на бронирование конкретного перелета-->
24 <Segments>
25 <Segment SegNum="?" SegGroupNum="?">
26 <!--SegNum - номер сегмента в перелёте-->
27 <!--SegGroupNum – номер плеча перелёта-->
28 <DepAirp CodeType="IATA">?</DepAirp>
29 <!--DepAirp - аэропорт отправления, например: MOW - любой аэропорт в г.Москва
30 или SVO - Шереметьево-->
31 <DepTerminal>?</DepTerminal>
32 <!--DepTerminal - терминал пункта отправления, если пустое значение,
33 то в аэропорту всего 1 терминал-->
34 <ArrAirp CodeType="IATA">?</ArrAirp>
35 <!--ArrAirp - аэропорт прибытия-->
36 <ArrTerminal>?</ArrTerminal>
37 <!--ArrTerminal - терминал пункта прибытия, если пустое значение,
38 то в аэропорту всего 1 терминал-->
39 <OpAirline>?</OpAirline>
40 <!--OpAirline - авиакомпания перевозчик, например: SU - Аэрофлот-->
41 <MarkAirline>?</MarkAirline>
42 <!--MarkAirline - авиакомпания, продающая перелёт-->
43 <FlightNumber>?</FlightNumber>
44 <!--FlightNumber - номер рейса-->
45 <AircraftType>?</AircraftType>
46 <!--AircraftType - тип воздушного судна, код-->
47 <DepDateTime>?</DepDateTime>
48 <!--DepDateTime - дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
49 <ArrDateTime>?</ArrDateTime>
50 <!--ArrDateTime - дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
51 <StopNum>?</StopNum>
52 <!--StopNum - количество остановок-->
53 <BookingCodes>
54 <BookingCode ClassType="?">
55 <!--ClassType - класс перелета, например: economy-->
56 <BookingCode>?</BookingCode>
57 <!--BookingCode - код класса бронирования, у разных авиакомпаний один и тот же класс
58 может записываться разными литерами, например: L-->
59 </BookingCode>
60 </BookingCodes>
61 <FlightTime>?</FlightTime>
62 <!--FlightTime - время перелёта в минутах-->
63 <TimeZone Departure="?" Arrival="?"/>
64 <!--Departure временная зона аэропорта отправления-->
65 <!--Arrival - временная зона аэропорта прибытия-->
66 <ETicket>?</ETicket>
67 <!--ETicket - признак электронного билета, значения: true / false-->
68 </Segment>
69 </Segments>
70 <PricingInfo Refundable="?">
71 <!--Refundable - возвратный/невозвратный, true/false. Если пустое, то не известно-->
72 <PassengerFare Type="?" Quantity="?">
73 <!--Type - тип пассажира, возможные значения: ADT - взрослые, CNN - дети,
74 INF - младенцы, INS - младенцы с местом-->
75 <!--Quantity - количество пассажиров данного типа-->
76 <BaseFare Currency="?" Amount="?"/>
77 <!--BaseFare - базовая стоимость, в базовой валюте. Currency - код валюты, Amount - значение цены-->
78 <EquiveFare Currency="?" Amount="?"/>
79 <!--EquiveFare - базовая стоимость, в эквивалентной валюте(валюте продажи).
80 Currency - код валюты, Amount - значение цены-->
81 <TotalFare Currency="?" Amount="?"/>
82 <!--TotalFare - суммарная стоимость, в эквивалентной валюте.
83 Currency - код валюты, Amount - значение цены-->
84 <Taxes>
85 <Tax CurCode="?" TaxCode="?" Amount="?"/>
86 <!--CurCode - код валюты, TaxCode - код таксы, Amount - сумма таксы-->
87 </Taxes>
88 <Tariffs>
89 <Tariff Code="?" SegNum="?"/>
90 <!--Code - код тарифа, SegNum - номер сегмента, к которому применён тариф-->
91 </Tariffs>
92 <FareCalc>?</FareCalc>
93 <!--FareCalc - строка расчёта цены-->
94 <LastTicketDateTime>?</LastTicketDateTime>
95 <!--LastTicketDateTime - дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
96 </PassengerFare>
97 </PricingInfo>
98 <Commission/>
99 <Charges Currency="?">?</Charges>
100 <!--Charges - сборы, Currency - код валюты-->
101 <TotalPrice Currency="?">?</TotalPrice>
102 <!--TotalPrice - итоговая цена, Currency - код валюты-->
103 </Flight>
104 <Agency Name="?">
105 <!--Name - название агентства-->
106 <Telephone Type="?">
107 <!--Type - тип номера, обязательный, возможные значения:
108 M - мобильный, H - домашний, B - рабочий, A - агенство-->
109 <!--Optional:-->
110 <PhoneNumber>?</PhoneNumber>
111 <!--PhoneNumber - номер телефона-->
112 <!--Optional:-->
113 <CountryAccessCode>?</CountryAccessCode>
114 <!--CountryAccessCode - код страны-->
115 <!--Optional:-->
116 <AreaCityCode>?</AreaCityCode>
117 <!--AreaCityCode - код региона/города-->
118 </Telephone>
119 <Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
120 <!--City - город-->
121 <!--State - штат-->
122 <!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)-->
123 <!--PostalCode - почтовый индекс-->
124 <!--CountryCode - код страны (RU, UA и т.п.)-->
125 </Agency>
126 <ItinReceipts Encoding="?" Format="?">
127 <!--ItinReceipts - маршрут квитанция, Encoding - кодировка, Format - формат-->
128 <FareStored xsi:nil="true"/>
129 <Travellers>
130 <!--Zero or more repetitions:-->
131 <Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
132 <!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые,
133 CNN - дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом-->
134 <!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
135 контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
136 может быть контактным лицом, по умолчанию false-->
137 <!--Num - порядковый номер пассажира, начинается с 1-->
138 <!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок-->
139 <!--TravellerId - устаревший параметр, не используется-->
140 <Meal>?</Meal>
141 <!--Meal - код типа питания, возможные значения:
142 NONE - отсутствует
143 AVML - Азиатская вегетарианская кухня
144 BLML - Блюда щадящей диеты
145 CHML - Детское питание
146 CHPC - Детский холодный завтрак
147 СНСС - Детский горячий завтрак
148 CHHC - Детский ланч, ветчина и сыр
149 PBJS - Детский ланч, ореховое масло
150 CHMC - Детский обед макароны с сыром
151 DBML - Диабетическое питание
152 FPML - Фрукты
153 GFML - Питание без клейковины
154 HFML - Питание богатое клетчаткой
155 HNML - Индусская кухня
156 BBML - Питание для младенцев
157 KSML - Кошерная кухня
158 SMKB - Кошерный завтрак
159 SMKL - Кошерный ланч
160 SMKD - Кошерный обед
161 LPML - Малобелковое питание
162 LCML - Низкокалорийное питание
163 LFML - Низкохолестериновое питание
164 PRML - Низкопуриновое питание
165 LSML - Малосоленое питание
166 MOML - Мюсли
167 NLML - Безмолочные продукты
168 ORML - Восточная кухня
169 RVML - Сырые овощи
170 SFML - Морепродукты
171 SPML - Особое питание
172 VLML - Вегетарианское, молоко и яйца
173 VGML - Строго вегетарианское питание
174 VJML - Джайнизское вегетарианское
175 VOML - Восточное вегетарианское питание-->
176 <PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
177 <!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
178 <!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
179 <!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
180 <FirstName>?</FirstName>
181 <!--FirstName - имя пассажира-->
182 <LastName>?</LastName>
183 <!--LastName - фамилия пассажира-->
184 <!--Optional:-->
185 <MiddleName>?</MiddleName>
186 <!--MiddleName - отчество пассажира-->
187 </PersonalInfo>
188 <LoyaltyCard OpCode="?" Number="?"/>
189 <!--OpCode - код авиакомпании-->
190 <!--Number - номер карточки-->
191 <ContactInfo>
192 <!--Optional:-->
193 <EmailID>?</EmailID>
194 <!--EmailID - контактный email-->
195 <!--Optional:-->
196 <Telephone Type="?">
197 <!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
198 <!--Optional:-->
199 <PhoneNumber>?</PhoneNumber>
200 <!--PhoneNumber - номер телефона-->
201 <!--Optional:-->
202 <CountryAccessCode>?</CountryAccessCode>
203 <!--CountryAccessCode - код страны-->
204 <!--Optional:-->
205 <AreaCityCode>?</AreaCityCode>
206 <!--AreaCityCode - код региона/города-->
207 </Telephone>
208 </ContactInfo>
209 <DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
210 <!--DocType - тип документа, возможные значения:
211 Р - Паспорт
212 A – Паспорт иностранца
213 С - Внутренний гражданский паспорт
214 F – Документ заменяющий паспорт
215 М - Воинское удостоверение
216 N – Сертификат натурализации(специфичный документ США)
217 T – Док.повторного въезда, паспорт беженца
218 V – Документ для пересечения границы-->
219 <!--DocNum - номер документа-->
220 <!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
221 <!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
222 <VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
223 <!--Num - номер визы-->
224 <!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы-->
225 <!--IssueCountry - страна выдачи визы-->
226 <!--IssuePlace - место выдачи визы-->
227 <!--BirthCountry - страна рождения(IATA код страны)-->
228 <!--BirthCity - город рождения(название)-->
229 <ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
230 <!--City - город-->
231 <!--State - штат или область въезда-->
232 <!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.-->
233 <!--PostalCode - почтовый код-->
234 <!--CountryCode - код страны-->
235 <PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
236 <!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
237 <!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих-->
238 <!--Location - положение места в ряде, возможные значения:
239 W - у окна (Window)
240 M - где-то в середине ряда (Middle)
241 NPW - возле прохода (NearPassengerWay)
242 NS - нет предпочтения (NotSpecified)-->
243 <!--RowNumber - номер ряда-->
244 <!--PlaceNumber - номер места-->
245 <!--SegNumber - номер сегмента-->
246 <DocStringFormats>
247 <!--Zero or more repetitions:-->
248 <DocStringFormat>?</DocStringFormat>
249 <!--DocStringFormat - формат паспортной строки, возможные значения:
250 DOCS - строка формата DOCS, FOID - строка формата FOID-->
251 </DocStringFormats>
252 </Traveller>
253 </Travellers>
254 </BookFlight>
255 <Requisites/>
256 <RequestType xsi:nil="true"/>
257 <UserID xsi:nil="true"/>
258 <Errors>
259 <Error Code="?">
260 <!--Code - код ошибки в системе Nemo-->
261 <ServiceErrorMessage>?</ServiceErrorMessage>
262 <!--ServiceErrorMessage - сообщение об ошибке полученное от веб-сервиса поставщика-->
263 <Message>?</Message>
264 <!--Message - сообщение об ошибке от системы Nemo-->
265 </Error>
266 </Errors>
267 </Response>
268 </ResponseBin>
269 </ns1:BookFlightResponse>
270 </SOAP-ENV:Body>
271 </SOAP-ENV:Envelope>
Пример использования
Пример одностороннего перелета Москва - Мадрид.
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:BookFlight>
5 <RequestBin>
6 <Request>
7 <BookFlight>
8 <FlightId>171430002</FlightId>
9 <BookingCodes>
10 <!--Zero or more repetitions:-->
11 <BookingCode Code="E" SegNumber="2"/>
12 </BookingCodes>
13 <Travellers>
14 <!--Zero or more repetitions:-->
15 <Traveller Type="ADT" IsContact="true" Num="1">
16 <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
17 <FirstName>Petr</FirstName>
18 <LastName>Ivanov</LastName>
19 </PersonalInfo>
20 <ContactInfo>
21 <!--Optional:-->
22 <EmailID>testmail@mail.ru</EmailID>
23 <!--Optional:-->
24 <Telephone Type="M">
25 <!--Optional:-->
26 <PhoneNumber>79051234567</PhoneNumber>
27 </Telephone>
28 </ContactInfo>
29 <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
30 </Traveller>
31 </Travellers>
32 </BookFlight>
33 </Request>
34 <Source>
35 <ClientId>---</ClientId>
36 <APIKey>---</APIKey>
37 <Language>RU</Language>
38 <Currency>RUB</Currency>
39 </Source>
40 </RequestBin>
41 </ver:BookFlight>
42 </soapenv:Body>
43 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DBookFlight" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:BookFlightResponse>
4 <ResponseBin>
5 <Response>
6 <BookFlight ID="262872" Status="booked" Code="LQHZWU">
7 <QueryPlace xsi:nil="true"/>
8 <Flight FlightId="171430002">
9 <WebService>SABRE</WebService>
10 <ValCompany>SU</ValCompany>
11 <URL>http%3A%2F%2FCLIENT_DOMAIN%2F%3Fgo%3Dbooking%2Finfo%26uid%3D14290%26flight%3D171430002</URL>
12 <Segments>
13 <Segment SegNum="1" SegGroupNum="0">
14 <DepAirp CodeType="IATA">SVO</DepAirp>
15 <DepTerminal>D</DepTerminal>
16 <ArrAirp CodeType="IATA">BCN</ArrAirp>
17 <ArrTerminal>1</ArrTerminal>
18 <OpAirline>SU</OpAirline>
19 <MarkAirline>SU</MarkAirline>
20 <FlightNumber>2512</FlightNumber>
21 <AircraftType>321</AircraftType>
22 <DepDateTime>2014-03-20T20:40:00</DepDateTime>
23 <ArrDateTime>2014-03-20T22:20:00</ArrDateTime>
24 <StopNum>0</StopNum>
25 <BookingCodes>
26 <BookingCode ClassType="economy">
27 <BookingCode>E</BookingCode>
28 </BookingCode>
29 </BookingCodes>
30 <FlightTime>280</FlightTime>
31 <TimeZone Departure="4" Arrival="1"/>
32 <ETicket>true</ETicket>
33 </Segment>
34 <Segment SegNum="2" SegGroupNum="0">
35 <DepAirp CodeType="IATA">BCN</DepAirp>
36 <DepTerminal>1</DepTerminal>
37 <ArrAirp CodeType="IATA">MAD</ArrAirp>
38 <ArrTerminal>2</ArrTerminal>
39 <OpAirline>UX</OpAirline>
40 <MarkAirline>SU</MarkAirline>
41 <FlightNumber>3403</FlightNumber>
42 <AircraftType>738</AircraftType>
43 <DepDateTime>2014-03-21T12:05:00</DepDateTime>
44 <ArrDateTime>2014-03-21T13:25:00</ArrDateTime>
45 <StopNum>0</StopNum>
46 <BookingCodes>
47 <BookingCode ClassType="economy">
48 <BookingCode>E</BookingCode>
49 </BookingCode>
50 </BookingCodes>
51 <FlightTime>80</FlightTime>
52 <TimeZone Departure="1" Arrival="1"/>
53 <ETicket>true</ETicket>
54 </Segment>
55 </Segments>
56 <PricingInfo Refundable="false">
57 <PassengerFare Type="ADT" Quantity="1">
58 <BaseFare Currency="EUR" Amount="165"/>
59 <EquiveFare Currency="RUB" Amount="8335"/>
60 <TotalFare Currency="RUB" Amount="14025"/>
61 <Taxes>
62 <Tax CurCode="RUB" TaxCode="YQF" Amount="4242"/>
63 <Tax CurCode="RUB" TaxCode="YRI" Amount="374"/>
64 <Tax CurCode="RUB" TaxCode="JD" Amount="844"/>
65 <Tax CurCode="RUB" TaxCode="QV" Amount="230"/>
66 </Taxes>
67 <Tariffs/>
68 <FareCalc>MOW SU X/BCN SU MAD225.45NUC225.45END ROE0.731857</FareCalc>
69 <LastTicketDateTime>2014-03-14T12:45:00</LastTicketDateTime>
70 </PassengerFare>
71 </PricingInfo>
72 <Commission Currency="RUB">0</Commission>
73 <Charges Currency="RUB">140.25</Charges>
74 <TotalPrice Currency="RUB">14165.25</TotalPrice>
75 </Flight>
76 <Agency/>
77 <ItinReceipts xsi:nil="true"/>
78 <FareStored xsi:nil="true"/>
79 <Travellers>
80 <Traveller Type="ADT" IsContact="true" Num="1">
81 <Meal/>
82 <Ticket/>
83 <Seats/>
84 <PersonalInfo DateOfBirth="20.05.1980" Nationality="RU" Gender="M">
85 <FirstName>PETR</FirstName>
86 <LastName>IVANOV</LastName>
87 <MiddleName/>
88 </PersonalInfo>
89 <LoyaltyCard/>
90 <ContactInfo>
91 <EmailID>TESTMAIL@MAIL.ru</EmailID>
92 <Telephone Type="M">
93 <PhoneNumber>79051234567</PhoneNumber>
94 <CountryAccessCode/>
95 <AreaCityCode/>
96 </Telephone>
97 </ContactInfo>
98 <DocumentInfo DocType="A" DocNum="123456" CountryCode="RU" DocElapsedTime="01.01.2020"/>
99 <VisaInfo/>
100 <ArrAddress/>
101 <PreferedPlace/>
102 <DocStringFormats/>
103 </Traveller>
104 </Travellers>
105 </BookFlight>
106 <Requisites/>
107 <RequestType xsi:nil="true"/>
108 <UserID xsi:nil="true"/>
109 <Errors xsi:nil="true"/>
110 </Response>
111 </ResponseBin>
112 </ns1:BookFlightResponse>
113 </SOAP-ENV:Body>
114 </SOAP-ENV:Envelope>
Отмена бронирования
После бронирования, если не истек таймлимит можно аннулировать сделанный заказ. Аннуляция заказа в Nemo может быть ручной (сделанной пользователем) и автоматической - по истечению таймлимита, установленного для заказа система сама аннулирует заказ.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=CancelBook
Запрос и ответ на аннуляцию заказа:
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:CancelBook>
5 <RequestBin>
6 <Request>
7 <CancelBook BookID="?"/>
8 <!--BookID - Id брони в системе Nemo, целое число-->
9 </Request>
10 <Source>
11 <ClientId>?</ClientId>
12 <!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
13 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
14 <APIKey>?</APIKey>
15 <!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
16 "Администрирование" ⇨ "Веб-служба. Авторизация".-->
17 <Language>?</Language>
18 <!--Language - язык-->
19 <Currency>?</Currency>
20 <!-- CUrrency - валюта-->
21 </Source>
22 </RequestBin>
23 </ver:CancelBook>
24 </soapenv:Body>
25 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DCancelBook" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:CancelBookResponse>
4 <ResponseBin>
5 <Response>
6 <CancelBook BookID="?">
7 <!--BookID - Id брони в системе Nemo, целое число-->
8 <Result Success="?"/>
9 <!--Success - результат отмены брони, true или false-->
10 </CancelBook>
11 <Requisites/>
12 <RequestType xsi:nil="true"/>
13 <UserID xsi:nil="true"/>
14 <Errors xsi:nil="true"/>
15 </Response>
16 </ResponseBin>
17 </ns1:CancelBookResponse>
18 </SOAP-ENV:Body>
19 </SOAP-ENV:Envelope>