Веб-служба выписки: различия между версиями
(→Общий формат запроса / ответа выписки) |
(→Информация) |
||
(не показаны 32 промежуточные версии 12 участников) | |||
Строка 1: | Строка 1: | ||
+ | {{Attention|В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по [http://docs.nemo.travel/ ссылке]}} | ||
+ | |||
+ | [[Категория:Интеграция]] | ||
+ | [[Категория:Агентский API]] | ||
+ | <!-- --> | ||
== Информация == | == Информация == | ||
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. | Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета. | ||
− | Как правило для выписки билета достаточно чтобы у заказа был статус | + | Как правило для выписки билета достаточно чтобы у заказа был статус «Оплачено». При включенной опции {{Setting|Для успешных бронирований производить оформление: автоматически после изменения статуса на «Оплачено»}} из раздела '''Для техподдержки → Устаревшие настройки → Настройки бронирования''' билет будет автоматически выписан после оплаты. Однако, это является обязательным условием только для пользователей, имеется возможность получения выписки билета, не требующей оплаты, для этого необходимо чтобы у АПИ пользователя были соответствующие права. К примеру, АПИ учётка должна быть заведена на менеджера агентства. |
− | В Nemo | + | Дополнительно была реализована настройка {{Setting|Допустимые IP адреса}} в разделе '''Настройки системы → Интеграция → Nemo 1.0 (SOAP API)''' , определяющая диапазон IP-адресов для дополнительной защиты учётных записей, под которыми происходит выписка билета без оплаты или фиксации оплаты. IP-адреса имеют следующий допустимый формат: <syntaxhighlight lang="text" enclose="none" style="font-size: 1em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">125.125.25.5/8</syntaxhighlight>, то есть возможно задавать с маской подсети. Выполнение запроса Ticketing без оплаты возможно только при работе под менеджером головного агентства, либо в случае использования значения "CC" в элементе PassengerFops. |
+ | |||
+ | {{Attention|При отсутствии в нашей системе данных о локаторе брони в системе авиакомпании операция выписки невозможна. Поэтому в ответе на запрос Ticketing может возвращаться ошибка вида «Запрошенная операция не разрешена для данного объекта». | ||
+ | В случае отсутствия на стороне GDS данных о локаторе брони в системе авиакомпании, в параметре Segments.Segment.SupplierCode в ответе на запрос BookFlight будет возвращено пустое значение. В этом случае необходимо произвести отправку запроса [[Дополнительные_запросы_АПИ_авиабилетов#.D0.97.D0.B0.D0.BF.D1.80.D0.BE.D1.81_.D0.BD.D0.B0_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B7.D0.B0.D0.BA.D0.B0.D0.B7.D0.B0 | UpdateBook]] несколько раз, пока на стороне GDS информация не будет получена о локаторе брони в системе авиакомпании. После этого наша система получит от GDS данное значение. Запрос выписки билетов может быть отправлен только после того, как в параметре Segments.Segment.SupplierCode в ответе от Агентского API Nemo 1 будет получено ненулевое значение.}} | ||
+ | |||
+ | В {{NameProject2}} в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет: | ||
− | * сообщать ВП (валидирующего перевозчика) по данной комбинации | + | * сообщать ВП (валидирующего перевозчика) по данной комбинации |
* сообщать комиссию по данной комбинации; | * сообщать комиссию по данной комбинации; | ||
* сообщать эндорсменты по данной комбинации; | * сообщать эндорсменты по данной комбинации; | ||
* принимать запрос на тикетинг; | * принимать запрос на тикетинг; | ||
− | * проверять наличие брони в | + | * проверять наличие брони в ГРС; |
* синхронизировать бронь; | * синхронизировать бронь; | ||
* выписывать билет; | * выписывать билет; | ||
Строка 18: | Строка 28: | ||
== Общий формат запроса / ответа выписки == | == Общий формат запроса / ответа выписки == | ||
− | Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать | + | Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать не оплаченный заказ через {{NameSystem}} можно только с определенный IP-адресов, список которых настраивается в разделе настроек, описанном выше. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы с истекшим таймлимитом выписать нельзя. |
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing | WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing | ||
Строка 34: | Строка 44: | ||
<Ticketing> | <Ticketing> | ||
<BookID>?</BookID> | <BookID>?</BookID> | ||
− | <!--BookID — Id заказа в системе | + | <!--BookID — Id заказа в системе nemo.travel--> |
<ValCompany>?</ValCompany> | <ValCompany>?</ValCompany> | ||
<!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)--> | <!--ValCompany — валидирующий перевозчик (тот кто выписывает билет)--> | ||
Строка 47: | Строка 57: | ||
<PassengerFop> | <PassengerFop> | ||
<PassengerId>?</PassengerId> | <PassengerId>?</PassengerId> | ||
− | <!--PassengerId | + | <!--PassengerId — порядковый номер пассажира в перелете--> |
<Fops> | <Fops> | ||
<!--Zero or more repetitions:--> | <!--Zero or more repetitions:--> | ||
<Fop> | <Fop> | ||
<Type>?</Type> | <Type>?</Type> | ||
− | <!--Type | + | <!--Type — форма оплаты: CC (по кредитной карте) или СА (наличными)--> |
<Money Currency="?">?</Money> | <Money Currency="?">?</Money> | ||
− | <!--Money | + | <!--Money — сумма платежа--> |
− | <!--Currency | + | <!--Currency — код валюты--> |
<VendorCode>?</VendorCode> | <VendorCode>?</VendorCode> | ||
− | <!--VendorCode | + | <!--VendorCode — код типа карты: (например, VI — Visa, |
− | MC | + | MC — MasterCard, |
− | AX | + | AX — American Express |
− | DC | + | DC — DCL, |
− | CA | + | CA — EURO, |
− | IK | + | IK — EURO, |
− | JB | + | JB — JCB, |
− | JC | + | JC — JCB, |
− | BA | + | BA — Visa)--> |
<Number>?</Number> | <Number>?</Number> | ||
− | <!--Number | + | <!--Number — номер карты--> |
<ExpireDate>?</ExpireDate> | <ExpireDate>?</ExpireDate> | ||
− | <!--ExpireDate | + | <!--ExpireDate — срок действия карты, например 12.2020--> |
<ManualApprovalCode>?</ManualApprovalCode> | <ManualApprovalCode>?</ManualApprovalCode> | ||
− | <!--ManualApprovalCode - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код. Необязательный. Если не указан, то он будет автоматически получен нашей системой через | + | <!--ManualApprovalCode - Код преавторизации транзакции, по которой были заблокированы средства для выписки. Это НЕ CVV код. Необязательный. Если не указан, то он будет автоматически получен нашей системой через ГРС/--> |
</Fop> | </Fop> | ||
</Fops> | </Fops> | ||
Строка 80: | Строка 90: | ||
<DataItem> | <DataItem> | ||
<Type>Remark</Type> | <Type>Remark</Type> | ||
− | <!--Type | + | <!--Type — тип контента в данном блоке, например: Meal, Remark--> |
<Remark> | <Remark> | ||
<Type>?</Type> | <Type>?</Type> | ||
− | <!--Type | + | <!--Type — тип ремарки, например: General, Historical--> |
<Text>?</Text> | <Text>?</Text> | ||
− | <!--Text | + | <!--Text — содержание ремарки--> |
</Remark> | </Remark> | ||
</DataItem> | </DataItem> | ||
Строка 93: | Строка 103: | ||
<Source> | <Source> | ||
<ClientId>?</ClientId> | <ClientId>?</ClientId> | ||
− | <!--ClientId — ID клиента в системе | + | <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<APIKey>?</APIKey> | <APIKey>?</APIKey> | ||
− | <!--APIKey — секретный ключ доступа к API | + | <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<Language>?</Language> | <Language>?</Language> | ||
<!--Language — язык, например: RU--> | <!--Language — язык, например: RU--> | ||
Строка 122: | Строка 132: | ||
<Response> | <Response> | ||
<Ticketing ID="?" Status="?" Code="?"> | <Ticketing ID="?" Status="?" Code="?"> | ||
− | <!--ID — Id брони в системе | + | <!--ID — Id брони в системе nemo.travel, целое число, обязательный--> |
<!--Status — индикатор состояния брони, возможные значения: | <!--Status — индикатор состояния брони, возможные значения: | ||
booked — забронировано, | booked — забронировано, | ||
Строка 132: | Строка 142: | ||
<!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> | <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> | ||
<Flight FlightId="?"> | <Flight FlightId="?"> | ||
− | <!--FlightId — Id перелёта в системе | + | <!--FlightId — Id перелёта в системе nemo.travel--> |
<WebService>?</WebService> | <WebService>?</WebService> | ||
<!--WebService — поставщик перелёта--> | <!--WebService — поставщик перелёта--> | ||
Строка 143: | Строка 153: | ||
<!--SegNum — номер сегмента в перелёте--> | <!--SegNum — номер сегмента в перелёте--> | ||
<!--SegGroupNum – номер плеча перелёта--> | <!--SegGroupNum – номер плеча перелёта--> | ||
+ | <SupplierCode>?</SupplierCode> | ||
+ | <!--SupplierCode – номер заказа в системе АК--> | ||
<DepAirp CodeType="IATA">?</DepAirp> | <DepAirp CodeType="IATA">?</DepAirp> | ||
<!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва | <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва | ||
Строка 163: | Строка 175: | ||
<!--FlightNumber — номер рейса--> | <!--FlightNumber — номер рейса--> | ||
<AircraftName>?</AircraftName> | <AircraftName>?</AircraftName> | ||
− | <!--AircraftName | + | <!--AircraftName — наименование воздушного судна--> |
<AircraftType>?</AircraftType> | <AircraftType>?</AircraftType> | ||
<!--AircraftType — тип воздушного судна, код--> | <!--AircraftType — тип воздушного судна, код--> | ||
Строка 172: | Строка 184: | ||
<StopNum>?</StopNum> | <StopNum>?</StopNum> | ||
<!--StopNum — количество остановок--> | <!--StopNum — количество остановок--> | ||
+ | <StopPoints> | ||
+ | <!--StopPoints — информация о технических остановках, если они есть--> | ||
+ | <StopPoint> | ||
+ | <AirportCode>?</AirportCode> | ||
+ | <!--AirportCode — код аэропорта остановки, трех символьный iata код--> | ||
+ | <UTC>?</UTC> | ||
+ | <!--UTC — сдвиг часового пояса аэропорта--> | ||
+ | <ArrDateTime>?</ArrDateTime> | ||
+ | <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <DepDateTime>?</DepDateTime> | ||
+ | <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </StopPoint> | ||
+ | </StopPoints> | ||
<BookingCodes> | <BookingCodes> | ||
<BookingCode ClassType="?"> | <BookingCode ClassType="?"> | ||
Строка 187: | Строка 212: | ||
<ETicket>?</ETicket> | <ETicket>?</ETicket> | ||
<!--ETicket — признак электронного билета, значения: true / false--> | <!--ETicket — признак электронного билета, значения: true / false--> | ||
+ | <isCharter>?</isCharter> | ||
+ | <!--isCharter — признак чартерного перелета, значения: true / false--> | ||
+ | <BaggageAllowances> | ||
+ | <!--BaggageAllowances — информация о багаже--> | ||
+ | <BaggageAllowance> | ||
+ | <PassengerType>?</PassengerType> | ||
+ | <!--PassengerType — тип пассажира, соответстует типу тарифа в PricingInfo --> | ||
+ | <Value>?</Value> | ||
+ | <!--Value — количество--> | ||
+ | <Measurement>?</Measurement> | ||
+ | <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт--> | ||
+ | </BaggageAllowance> | ||
+ | </BaggageAllowances> | ||
</Segment> | </Segment> | ||
</Segments> | </Segments> | ||
Строка 192: | Строка 230: | ||
<!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> | <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> | ||
<PassengerFare Type="?" Quantity="?"> | <PassengerFare Type="?" Quantity="?"> | ||
− | <!--Type — тип | + | <!--Type — тип тарифа--> |
− | |||
<!--Quantity — количество пассажиров данного типа--> | <!--Quantity — количество пассажиров данного типа--> | ||
<BaseFare Currency="?" Amount="?"/> | <BaseFare Currency="?" Amount="?"/> | ||
Строка 214: | Строка 251: | ||
<!--FareCalc — строка расчёта цены--> | <!--FareCalc — строка расчёта цены--> | ||
<LastTicketDateTime>?</LastTicketDateTime> | <LastTicketDateTime>?</LastTicketDateTime> | ||
− | <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | + | <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС. Если включена настройка "Применение временной зоны - Для расчетов таймлимитов в агентском API", дата и время таймлимита будут переведены во временную зону пользователя. При отключенной настройке по умолчанию дата и время будут в Московском часовом поясе.--> |
</PassengerFare> | </PassengerFare> | ||
</PricingInfo> | </PricingInfo> | ||
Строка 251: | Строка 288: | ||
<Transaction> | <Transaction> | ||
<Id>?</Id> | <Id>?</Id> | ||
− | <!--Id | + | <!--Id — номер транзакции в Немо--> |
<Status>?</Status> | <Status>?</Status> | ||
− | <!--Status | + | <!--Status — статус транзакции--> |
<GatewayName>?</GatewayName> | <GatewayName>?</GatewayName> | ||
− | <!--GatewayName | + | <!--GatewayName — название платежного шлюза--> |
<MoneyPaid Currency="?">?</MoneyPaid> | <MoneyPaid Currency="?">?</MoneyPaid> | ||
− | <!--MoneyPaid | + | <!--MoneyPaid — сумма оплаты--> |
− | <!--Currency | + | <!--Currency — валюта--> |
<PaymentDateTime>?</PaymentDateTime> | <PaymentDateTime>?</PaymentDateTime> | ||
− | <!--PaymentDateTime | + | <!--PaymentDateTime — дата и время оплаты--> |
<CreateDateTime>?</CreateDateTime> | <CreateDateTime>?</CreateDateTime> | ||
− | <!--CreateDateTime | + | <!--CreateDateTime — дата и время создания платежной транзакции--> |
<Description/> | <Description/> | ||
</Transaction> | </Transaction> | ||
</PaymentTransactions> | </PaymentTransactions> | ||
<PaymentStatus>?</PaymentStatus> | <PaymentStatus>?</PaymentStatus> | ||
− | <!--PaymentStatus | + | <!--PaymentStatus — статус оплаты: |
not_paid — не оплачено | not_paid — не оплачено | ||
partly_paid — оплачено, частично | partly_paid — оплачено, частично | ||
Строка 281: | Строка 318: | ||
<!--Num — порядковый номер пассажира, начинается с 1--> | <!--Num — порядковый номер пассажира, начинается с 1--> | ||
<!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> | <!--LinkedTo — номер взрослого, к которому привязан младенец/ребёнок (привязка ребёнка ко взрослому является опциональной)--> | ||
− | + | <!--TravellerId — актуализированный номер пассажира, который возвращается в ответе на запрос бронирования и в дальнейшем ссылки на пассажиров даются на основании этого параметра--> | |
<Meal>?</Meal> | <Meal>?</Meal> | ||
<!--Meal — код типа питания, возможные значения: | <!--Meal — код типа питания, возможные значения: | ||
Строка 398: | Строка 435: | ||
</Traveller> | </Traveller> | ||
</Travellers> | </Travellers> | ||
+ | <AutoCancelDate>?</AutoCancelDate> | ||
+ | <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства--> | ||
+ | <TimeLimits> | ||
+ | <TicketingTimeLimit>?</TicketingTimeLimit> | ||
+ | <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <PriceTimeLimit>?</PriceTimeLimit> | ||
+ | <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit> | ||
+ | <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <AgencyTimeLimit>?</AgencyTimeLimit> | ||
+ | <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </TimeLimits> | ||
</Ticketing> | </Ticketing> | ||
<Requisites/> | <Requisites/> | ||
<RequestType xsi:nil="true"/> | <RequestType xsi:nil="true"/> | ||
<UserID xsi:nil="true"/> | <UserID xsi:nil="true"/> | ||
− | <Error Code=" | + | <Error Code="?">Сообщение об ошибке</Error> |
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 408: | Строка 457: | ||
</SOAP-ENV:Body> | </SOAP-ENV:Body> | ||
</SOAP-ENV:Envelope> | </SOAP-ENV:Envelope> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
Строка 449: | Строка 478: | ||
<VoidTicket> | <VoidTicket> | ||
<BookID>?</BookID> | <BookID>?</BookID> | ||
− | <!--BookID — Id брони в системе | + | <!--BookID — Id брони в системе nemo.travel, целое число--> |
</VoidTicket> | </VoidTicket> | ||
</Request> | </Request> | ||
<Source> | <Source> | ||
<ClientId>?</ClientId> | <ClientId>?</ClientId> | ||
− | <!--ClientId — ID клиента в системе | + | <!--ClientId — ID клиента в системе nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<APIKey>?</APIKey> | <APIKey>?</APIKey> | ||
− | <!--APIKey — секретный ключ доступа к API | + | <!--APIKey — секретный ключ доступа к API nemo.travel. Можно посмотреть/добавить в разделе |
− | + | «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | |
<Language>?</Language> | <Language>?</Language> | ||
<!--Language — язык, например: RU--> | <!--Language — язык, например: RU--> | ||
Строка 482: | Строка 511: | ||
<Response> | <Response> | ||
<VoidTicket BookID="?"> | <VoidTicket BookID="?"> | ||
− | <!--BookID — Id брони в системе | + | <!--BookID — Id брони в системе nemo.travel, целое число--> |
<Result Success="?"/> | <Result Success="?"/> | ||
<!--Sucscess — результат отмены выписки, true или false--> | <!--Sucscess — результат отмены выписки, true или false--> | ||
Строка 489: | Строка 518: | ||
<RequestType xsi:nil="true"/> | <RequestType xsi:nil="true"/> | ||
<UserID xsi:nil="true"/> | <UserID xsi:nil="true"/> | ||
− | < | + | <Error Code="?">Сообщение об ошибке</Error> |
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 495: | Строка 524: | ||
</SOAP-ENV:Body> | </SOAP-ENV:Body> | ||
</SOAP-ENV:Envelope> | </SOAP-ENV:Envelope> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</div> | </div> | ||
Строка 518: | Строка 530: | ||
== См. также == | == См. также == | ||
− | *[[Агентский | + | * [[Агентский API Авиабилеты]] |
− | *[[Бронирование]] | + | * [[Бронирование]] |
− | + | * [[Дополнительные запросы АПИ авиабилетов]] | |
− | [[ |
Текущая версия на 17:09, 20 сентября 2022
Внимание! В системе реализован усовершенствованный API-проект «Nemo Connect», настоятельно рекомендуем подключаться по схеме, описанной в документации по ссылке
Содержание
Информация
Агентский АПИ выписки позволяет определить валидирующего перевозчика и значение комиссии от авиакомпании для брони, а также запустить процедуру выписки билета.
Как правило для выписки билета достаточно чтобы у заказа был статус «Оплачено». При включенной опции Для успешных бронирований производить оформление: автоматически после изменения статуса на «Оплачено» из раздела Для техподдержки → Устаревшие настройки → Настройки бронирования билет будет автоматически выписан после оплаты. Однако, это является обязательным условием только для пользователей, имеется возможность получения выписки билета, не требующей оплаты, для этого необходимо чтобы у АПИ пользователя были соответствующие права. К примеру, АПИ учётка должна быть заведена на менеджера агентства.
Дополнительно была реализована настройка Допустимые IP адреса в разделе Настройки системы → Интеграция → Nemo 1.0 (SOAP API) , определяющая диапазон IP-адресов для дополнительной защиты учётных записей, под которыми происходит выписка билета без оплаты или фиксации оплаты. IP-адреса имеют следующий допустимый формат: 125.125.25.5/8
, то есть возможно задавать с маской подсети. Выполнение запроса Ticketing без оплаты возможно только при работе под менеджером головного агентства, либо в случае использования значения "CC" в элементе PassengerFops.
Внимание! При отсутствии в нашей системе данных о локаторе брони в системе авиакомпании операция выписки невозможна. Поэтому в ответе на запрос Ticketing может возвращаться ошибка вида «Запрошенная операция не разрешена для данного объекта». В случае отсутствия на стороне GDS данных о локаторе брони в системе авиакомпании, в параметре Segments.Segment.SupplierCode в ответе на запрос BookFlight будет возвращено пустое значение. В этом случае необходимо произвести отправку запроса UpdateBook несколько раз, пока на стороне GDS информация не будет получена о локаторе брони в системе авиакомпании. После этого наша система получит от GDS данное значение. Запрос выписки билетов может быть отправлен только после того, как в параметре Segments.Segment.SupplierCode в ответе от Агентского API Nemo 1 будет получено ненулевое значение.
В Nemo Connect в агентский сервис (интерфейс к серверу бронирования) добавлены дополнительные настройки для выписки авиабилетов. В новой версии АПИ позволяет:
- сообщать ВП (валидирующего перевозчика) по данной комбинации
- сообщать комиссию по данной комбинации;
- сообщать эндорсменты по данной комбинации;
- принимать запрос на тикетинг;
- проверять наличие брони в ГРС;
- синхронизировать бронь;
- выписывать билет;
- передавать дополнительную информацию в ремарках;
- войдировать билет.
Общий формат запроса / ответа выписки
Данный запрос запускается после оплаты заказа, может быть запущен как в ручном режиме — пользователем, у которого есть на это права, так и автоматически. Выписать не оплаченный заказ через Nemo.Travel можно только с определенный IP-адресов, список которых настраивается в разделе настроек, описанном выше. При запуске запроса на выписку также запускается процесс обновления заказа, в ходе которого сверяется цена и остальные параметры заказа, а также проверяется его актуальность. Заказы с истекшим таймлимитом выписать нельзя.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=Ticketing
Запрос
Ответ
Общий формат запроса / ответа войдирования
Данный запрос запускается после выписки билета, если необходимо его отменить.
WSDL: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=VoidTicket