Веб-служба выписки

Материал из Центр поддержки системы бронировании
Версия от 14:11, 15 марта 2014; Алексей Петрик (обсуждение | вклад) (Войдирование билета)
Перейти к навигации Перейти к поиску

Агентский АПИ выписки

Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.

! Как правило для выписки билета достаточно чтобы у заказа был статус "Оплачено". При включенной опции «Для успешных бронирований производить оформление: автоматически после изменения статуса на "Оплачено"» из раздела «Заказы»«Настройки бронирования» билет будет автоматически выписан после оплаты.

В Nemo 2.0 в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:

  • сообщать ВП (валидирующего перевозчика) по данной комбинации;
  • сообщать комиссию по данной комбинации;
  • сообщать эндорсменты по данной комбинации;
  • принимать запрос на тикетинг;
  • проверять наличие брони в ГДС;
  • синхронизировать бронь;
  • выписывать билет;
  • войдировать билет.

Общий формат запроса / ответа выписки

Данный запрос запускается после оплаты заказа, может быть запущен как в ручную - пользователем, у которого есть на это права, так и автоматически при использовании соответствующей опции. Выписать неоплаченный заказ через Nemo возможности нет. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы, с истекшим таймлимитом выписаны через Nemo быть не могут.

WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing

Запрос

 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DTicketing">
 2    <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:Ticketing>
 5          <RequestBin>
 6             <Request>
 7                <Ticketing>
 8                   <BookID>?</BookID>
 9                   <!--BookID - Id заказа в системе Nemo-->
10                   <ValCompany>?</ValCompany>
11                   <!--ValCompany - валидирующий перевозчик (тот кто выписывает билет)-->
12                   <Comission Amount="?" Percent="?" CurrencyCode="?"/>
13                   <!--Comission Amount - комиссии, указываются или в валюте, или в процентах, для валюты обязательным является 
14                    код валюты. Если указана и в валюте и в процентах, то у поставщика комиссия устанавливается в валюте-->
15                   <!--Amount - комиссия в валюте-->
16                   <!--Percent - комиссия в процентах-->
17                   <!--CurrencyCode - код валюты комиссии-->
18                </Ticketing>
19             </Request>
20             <Source>
21                <ClientId>?</ClientId>
22                <!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
23                "Администрирование" ⇨ "Веб-служба. Авторизация".-->
24                <APIKey>?</APIKey>
25                <!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
26                "Администрирование" ⇨ "Веб-служба. Авторизация".-->
27                <Language>?</Language>
28                <!--Language - язык, например: RU-->
29                <Currency>?</Currency>
30                <!-- Currency - валюта, например: RUB, EUR-->
31             </Source>
32          </RequestBin>
33       </ver:Ticketing>
34    </soapenv:Body>
35 </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%3DTicketing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2    <SOAP-ENV:Body>
  3       <ns1:TicketingResponse>
  4          <ResponseBin>
  5             <Response>
  6                <Ticketing 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:TicketingResponse>
270    </SOAP-ENV:Body>
271 </SOAP-ENV:Envelope>

Общий формат запроса / ответа войдирования

Данный запрос запускается после выписки билета, если необходимо его отменить.

WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=VoidTicket

Запрос

 1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DVoidTicket">
 2    <soapenv:Header/>
 3    <soapenv:Body>
 4       <ver:VoidTicket>
 5          <RequestBin>
 6             <Request>
 7                <VoidTicket>
 8                   <BookID>?</BookID>
 9                   <!--BookID - Id брони в системе Nemo, целое число-->
10                </VoidTicket>
11             </Request>
12             <Source>
13                <ClientId>?</ClientId>
14                <!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
15                "Администрирование" ⇨ "Веб-служба. Авторизация".-->
16                <APIKey>?</APIKey>
17                <!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
18                "Администрирование" ⇨ "Веб-служба. Авторизация".-->
19                <Language>?</Language>
20                <!--Language - язык, например: RU-->
21                <Currency>?</Currency>
22                <!-- Currency - валюта, например: RUB, EUR-->
23             </Source>
24          </RequestBin>
25       </ver:VoidTicket>
26    </soapenv:Body>
27 </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%3DVoidTicket" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 2    <SOAP-ENV:Body>
 3       <ns1:VoidTicketResponse>
 4          <ResponseBin>
 5             <Response>
 6                <VoidTicket BookID="?">
 7                <!--BookID - Id брони в системе Nemo, целое число-->
 8                   <Result Success="?"/>
 9                   <!--Sucscess - результат отмены выписки, true или false-->
10                </VoidTicket>
11                <Requisites/>
12                <RequestType xsi:nil="true"/>
13                <UserID xsi:nil="true"/>
14                <Errors xsi:nil="true"/>
15             </Response>
16          </ResponseBin>
17       </ns1:VoidTicketResponse>
18    </SOAP-ENV:Body>
19 </SOAP-ENV:Envelope>

См. также