Изменения

Перейти к навигации Перейти к поиску

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

31 218 байт добавлено, 14:06, 15 марта 2014
Новая страница: «= Агентский АПИ выписки = Агентский АПИ выписки позволяет определить валидирующего пере…»
= Агентский АПИ выписки =

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

<span style="background-color:#fff0f5;"><span style="font-size:large;"><span style="color:#ff0000;">!</span></span> Как правило для выписки билета достаточно чтобы у заказа был статус "Оплачено". При включенной опции '''''«Для успешных бронирований производить оформление: автоматически после изменения статуса на "Оплачено"»''''' из раздела '''«Заказы»''' ⇨ '''«Настройки бронирования»''' билет будет автоматически выписан после оплаты.

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

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

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

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

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DTicketing">
<soapenv:Header/>
<soapenv:Body>
<ver:Ticketing>
<RequestBin>
<Request>
<Ticketing>
<BookID>?</BookID>
<!--BookID - Id заказа в системе Nemo-->
<ValCompany>?</ValCompany>
<!--ValCompany - валидирующий перевозчик (тот кто выписывает билет)-->
<Comission Amount="?" Percent="?" CurrencyCode="?"/>
<!--Comission Amount - комиссии, указываются или в валюте, или в процентах, для валюты обязательным является код валюты.
Если указана и в валюте и в процентах, то у поставщика комиссия устанавливается в валюте-->
<!--Amount - комиссия в валюте-->
<!--Percent - комиссия в процентах-->
<!--CurrencyCode - код валюты комиссии-->
</Ticketing>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ⇨ "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ⇨ "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language - язык, например: RU-->
<Currency>?</Currency>
<!-- Currency - валюта, например: RUB, EUR-->
</Source>
</RequestBin>
</ver:Ticketing>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
</div>
</div>

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Ответ ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<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">
<SOAP-ENV:Body>
<ns1:TicketingResponse>
<ResponseBin>
<Response>
<Ticketing ID="?" Status="?" Code="?">
<!--ID - Id брони в системе немо, целое число, обязательный-->
<!--Status - индикатор состояния брони, возможные значения:
booked - забронировано,
canceled - бронь отменена,
ticket - выписана
UNDEFINED - статус не определён-->
<!--Code - код брони в системе поставщика-->
<QueryPlace xsi:nil="true"/>
<!--QueryPlace - положение брони в очереди, Number - номер брони в очереди-->
<Flight FlightId="?">
<!--FlightId - Id перелёта в системе Nemo-->
<WebService>?</WebService>
<!--WebService - поставщик перелёта-->
<ValCompany>?</ValCompany>
<!--ValCompany - код авиакомпании, являющейся валидирующим перевозчиком, IATA-->
<URL>?</URL>
<!--URL - ссылка на бронирование конкретного перелета-->
<Segments>
<Segment SegNum="?" SegGroupNum="?">
<!--SegNum - номер сегмента в перелёте-->
<!--SegGroupNum – номер плеча перелёта-->
<DepAirp CodeType="IATA">?</DepAirp>
<!--DepAirp - аэропорт отправления, например: MOW - любой аэропорт в г.Москва
или SVO - Шереметьево-->
<DepTerminal>?</DepTerminal>
<!--DepTerminal - терминал пункта отправления, если пустое значение,
то в аэропорту всего 1 терминал-->
<ArrAirp CodeType="IATA">?</ArrAirp>
<!--ArrAirp - аэропорт прибытия-->
<ArrTerminal>?</ArrTerminal>
<!--ArrTerminal - терминал пункта прибытия, если пустое значение,
то в аэропорту всего 1 терминал-->
<OpAirline>?</OpAirline>
<!--OpAirline - авиакомпания перевозчик, например: SU - Аэрофлот-->
<MarkAirline>?</MarkAirline>
<!--MarkAirline - авиакомпания, продающая перелёт-->
<FlightNumber>?</FlightNumber>
<!--FlightNumber - номер рейса-->
<AircraftType>?</AircraftType>
<!--AircraftType - тип воздушного судна, код-->
<DepDateTime>?</DepDateTime>
<!--DepDateTime - дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<ArrDateTime>?</ArrDateTime>
<!--ArrDateTime - дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
<StopNum>?</StopNum>
<!--StopNum - количество остановок-->
<BookingCodes>
<BookingCode ClassType="?">
<!--ClassType - класс перелета, например: economy-->
<BookingCode>?</BookingCode>
<!--BookingCode - код класса бронирования, у разных авиакомпаний один и тот же класс
может записываться разными литерами, например: L-->
</BookingCode>
</BookingCodes>
<FlightTime>?</FlightTime>
<!--FlightTime - время перелёта в минутах-->
<TimeZone Departure="?" Arrival="?"/>
<!--Departure временная зона аэропорта отправления-->
<!--Arrival - временная зона аэропорта прибытия-->
<ETicket>?</ETicket>
<!--ETicket - признак электронного билета, значения: true / false-->
</Segment>
</Segments>
<PricingInfo Refundable="?">
<!--Refundable - возвратный/невозвратный, true/false. Если пустое, то не известно-->
<PassengerFare Type="?" Quantity="?">
<!--Type - тип пассажира, возможные значения: ADT - взрослые, CNN - дети,
INF - младенцы, INS - младенцы с местом-->
<!--Quantity - количество пассажиров данного типа-->
<BaseFare Currency="?" Amount="?"/>
<!--BaseFare - базовая стоимость, в базовой валюте. Currency - код валюты, Amount - значение цены-->
<EquiveFare Currency="?" Amount="?"/>
<!--EquiveFare - базовая стоимость, в эквивалентной валюте(валюте продажи).
Currency - код валюты, Amount - значение цены-->
<TotalFare Currency="?" Amount="?"/>
<!--TotalFare - суммарная стоимость, в эквивалентной валюте.
Currency - код валюты, Amount - значение цены-->
<Taxes>
<Tax CurCode="?" TaxCode="?" Amount="?"/>
<!--CurCode - код валюты, TaxCode - код таксы, Amount - сумма таксы-->
</Taxes>
<Tariffs>
<Tariff Code="?" SegNum="?"/>
<!--Code - код тарифа, SegNum - номер сегмента, к которому применён тариф-->
</Tariffs>
<FareCalc>?</FareCalc>
<!--FareCalc - строка расчёта цены-->
<LastTicketDateTime>?</LastTicketDateTime>
<!--LastTicketDateTime - дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
</PassengerFare>
</PricingInfo>
<Commission/>
<Charges Currency="?">?</Charges>
<!--Charges - сборы, Currency - код валюты-->
<TotalPrice Currency="?">?</TotalPrice>
<!--TotalPrice - итоговая цена, Currency - код валюты-->
</Flight>
<Agency Name="?">
<!--Name - название агентства-->
<Telephone Type="?">
<!--Type - тип номера, обязательный, возможные значения:
M - мобильный, H - домашний, B - рабочий, A - агенство-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber - номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode - код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode - код региона/города-->
</Telephone>
<Address City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
<!--City - город-->
<!--State - штат-->
<!--StreetAddress - адрес в городе (улица, дом, корпус, офис и т.д.)-->
<!--PostalCode - почтовый индекс-->
<!--CountryCode - код страны (RU, UA и т.п.)-->
</Agency>
<ItinReceipts Encoding="?" Format="?">
<!--ItinReceipts - маршрут квитанция, Encoding - кодировка, Format - формат-->
<FareStored xsi:nil="true"/>
<Travellers>
<!--Zero or more repetitions:-->
<Traveller Type="?" IsContact="?" LinkedTo="?" Num="?" TravellerId="?">
<!--Type - тип пассажира, обязательный, возможные значения: ADT - взрослые,
CNN - дети со взрослыми,UNN - дети без сопровождения взрослых, INF - младенцы, INS - младенцы с местом-->
<!--IsContact - если true - то данный пассажир является контактным лицом, если false - то не является,
контактное лицо может быть только 1, если среди пассажиров есть взрослые, то только кто-то из них
может быть контактным лицом, по умолчанию false-->
<!--Num - порядковый номер пассажира, начинается с 1-->
<!--LinkedTo - номер взрослого, к которому привязан младенец/ребёнок-->
<!--TravellerId - устаревший параметр, не используется-->
<Meal>?</Meal>
<!--Meal - код типа питания, возможные значения:
NONE - отсутствует
AVML - Азиатская вегетарианская кухня
BLML - Блюда щадящей диеты
CHML - Детское питание
CHPC - Детский холодный завтрак
СНСС - Детский горячий завтрак
CHHC - Детский ланч, ветчина и сыр
PBJS - Детский ланч, ореховое масло
CHMC - Детский обед макароны с сыром
DBML - Диабетическое питание
FPML - Фрукты
GFML - Питание без клейковины
HFML - Питание богатое клетчаткой
HNML - Индусская кухня
BBML - Питание для младенцев
KSML - Кошерная кухня
SMKB - Кошерный завтрак
SMKL - Кошерный ланч
SMKD - Кошерный обед
LPML - Малобелковое питание
LCML - Низкокалорийное питание
LFML - Низкохолестериновое питание
PRML - Низкопуриновое питание
LSML - Малосоленое питание
MOML - Мюсли
NLML - Безмолочные продукты
ORML - Восточная кухня
RVML - Сырые овощи
SFML - Морепродукты
SPML - Особое питание
VLML - Вегетарианское, молоко и яйца
VGML - Строго вегетарианское питание
VJML - Джайнизское вегетарианское
VOML - Восточное вегетарианское питание-->
<PersonalInfo DateOfBirth="?" Nationality="?" Gender="?">
<!--DateOfBirth - дата рождения в формате ДД.ММ.ГГГГ (например 31.12.2000)-->
<!--Nationality - гражданство, двух буквенный код страны (RU, UA, US и т.д.)-->
<!--Gender - пол пассажира, возможные значения: M - мужской(Male), F - женский(Female)-->
<FirstName>?</FirstName>
<!--FirstName - имя пассажира-->
<LastName>?</LastName>
<!--LastName - фамилия пассажира-->
<!--Optional:-->
<MiddleName>?</MiddleName>
<!--MiddleName - отчество пассажира-->
</PersonalInfo>
<LoyaltyCard OpCode="?" Number="?"/>
<!--OpCode - код авиакомпании-->
<!--Number - номер карточки-->
<ContactInfo>
<!--Optional:-->
<EmailID>?</EmailID>
<!--EmailID - контактный email-->
<!--Optional:-->
<Telephone Type="?">
<!--Type - тип номера, возможные значения: M - мобильный, H - домашний, B - рабочий-->
<!--Optional:-->
<PhoneNumber>?</PhoneNumber>
<!--PhoneNumber - номер телефона-->
<!--Optional:-->
<CountryAccessCode>?</CountryAccessCode>
<!--CountryAccessCode - код страны-->
<!--Optional:-->
<AreaCityCode>?</AreaCityCode>
<!--AreaCityCode - код региона/города-->
</Telephone>
</ContactInfo>
<DocumentInfo DocType="?" DocNum="?" CountryCode="?" DocElapsedTime="?"/>
<!--DocType - тип документа, возможные значения:
Р - Паспорт
A – Паспорт иностранца
С - Внутренний гражданский паспорт
F – Документ заменяющий паспорт
М - Воинское удостоверение
N – Сертификат натурализации(специфичный документ США)
T – Док.повторного въезда, паспорт беженца
V – Документ для пересечения границы-->
<!--DocNum - номер документа-->
<!--CountryCode - двух буквенный код страны выдачи паспорта (RU, UA, US и т.д.)-->
<!--DocElapsedTime - срок истечения срока действия паспорта в ДД.ММ.ГГГ (например 31.12.2000)-->
<VisaInfo Num="?" IssueCountry="?" IssuePlace="?" BirthCountry="?" BirthCity="?" IssueDate="?"/>
<!--Num - номер визы-->
<!--IssueDate - дата(ДД.ММ.ГГГГ) выдачи визы-->
<!--IssueCountry - страна выдачи визы-->
<!--IssuePlace - место выдачи визы-->
<!--BirthCountry - страна рождения(IATA код страны)-->
<!--BirthCity - город рождения(название)-->
<ArrAddress City="?" State="?" StreetAddress="?" PostalCode="?" CountryCode="?"/>
<!--City - город-->
<!--State - штат или область въезда-->
<!--StreetAddress - адрес: улица, номер дома, квартиры и т.д.-->
<!--PostalCode - почтовый код-->
<!--CountryCode - код страны-->
<PreferedPlace SmokingAllowed="?" Location="?" RowNumber="?" PlaceNumber="?" SegNumber="?"/>
<!--Если указаны номер ряда и номер места, то параметры SmokingAllowed и Location игнорируются-->
<!--SmokingAllowed - булевское значение, true - место для курящих, false - место для некурящих-->
<!--Location - положение места в ряде, возможные значения:
W - у окна (Window)
M - где-то в середине ряда (Middle)
NPW - возле прохода (NearPassengerWay)
NS - нет предпочтения (NotSpecified)-->
<!--RowNumber - номер ряда-->
<!--PlaceNumber - номер места-->
<!--SegNumber - номер сегмента-->
<DocStringFormats>
<!--Zero or more repetitions:-->
<DocStringFormat>?</DocStringFormat>
<!--DocStringFormat - формат паспортной строки, возможные значения:
DOCS - строка формата DOCS, FOID - строка формата FOID-->
</DocStringFormats>
</Traveller>
</Travellers>
</BookFlight>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors>
<Error Code="?">
<!--Code - код ошибки в системе Nemo-->
<ServiceErrorMessage>?</ServiceErrorMessage>
<!--ServiceErrorMessage - сообщение об ошибке полученное от веб-сервиса поставщика-->
<Message>?</Message>
<!--Message - сообщение об ошибке от системы Nemo-->
</Error>
</Errors>
</Response>
</ResponseBin>
</ns1:TicketingResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>

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

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

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Запрос ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/nemoflights/?version%3D1.0%26for%3DVoidTicket">
<soapenv:Header/>
<soapenv:Body>
<ver:VoidTicket>
<RequestBin>
<Request>
<VoidTicket>
<BookID>?</BookID>
<!--BookID - Id брони в системе Nemo, целое число-->
</VoidTicket>
</Request>
<Source>
<ClientId>?</ClientId>
<!--ClientId - ID клиента в системе Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ⇨ "Веб-служба. Авторизация".-->
<APIKey>?</APIKey>
<!--APIKey - секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе
"Администрирование" ⇨ "Веб-служба. Авторизация".-->
<Language>?</Language>
<!--Language - язык, например: RU-->
<Currency>?</Currency>
<!-- Currency - валюта, например: RUB, EUR-->
</Source>
</RequestBin>
</ver:VoidTicket>
</soapenv:Body>
</soapenv:Envelope>
</syntaxhighlight>
</div>
</div>

<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px">
==== Ответ ====
<div class="mw-collapsible-content">
<syntaxhighlight lang="xml" line enclose="div" style="font-size:9pt;background: #F9F9F9; border: 1px dashed #2F6FAB; padding: 10px 5px; margin: 10px 0;">
<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">
<SOAP-ENV:Body>
<ns1:VoidTicketResponse>
<ResponseBin>
<Response>
<VoidTicket BookID="?">
<!--BookID - Id брони в системе Nemo, целое число-->
<Result Success="?"/>
<!--Sucscess - результат отмены выписки, true или false-->
</VoidTicket>
<Requisites/>
<RequestType xsi:nil="true"/>
<UserID xsi:nil="true"/>
<Errors xsi:nil="true"/>
</Response>
</ResponseBin>
</ns1:VoidTicketResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</syntaxhighlight>
</div>
</div>

== См. также ==

*[[Агентский АПИ]]
*[[Бронирование]]

[[Категория:Интеграция]]

Навигация

'