Агентский API Оплата: различия между версиями
(→Примеры использования) |
м (→Возможные ошибки в результате выполнения запроса.) |
||
(не показано 38 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Интеграция]] | ||
+ | [[Категория:Агентский API]] | ||
== Подключение == | == Подключение == | ||
Это сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. | Это сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов. | ||
− | Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю. Это можно сделать в разделе | + | Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)»<!--{{Menu|Настройки системы|Интеграция|Nemo 1.0 (SOAP API)}}-->. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | После добавления пользователя ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения. | ||
== Получение списка доступных способов оплаты == | == Получение списка доступных способов оплаты == | ||
− | |||
WSDL находится по адресу: http://CLIENT_DOMAIN/wsdev/wsdl.php?version=1.0&for=PaymentInitialization | WSDL находится по адресу: http://CLIENT_DOMAIN/wsdev/wsdl.php?version=1.0&for=PaymentInitialization | ||
На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида. | На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида. | ||
− | Для получения результата необходим параметр | + | Для получения результата необходим параметр «OrderId» — ID забронированного заказа, который необходимо оплатить. |
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ. | Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ. | ||
Строка 55: | Строка 22: | ||
* дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз | * дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз | ||
* URL, перенаправляющий пользователя непосредственно на страницу оплаты через данный платёжный шлюз | * URL, перенаправляющий пользователя непосредственно на страницу оплаты через данный платёжный шлюз | ||
− | * в случае отправки запроса с мобильной платформы может дополнительно | + | * в случае отправки запроса с мобильной платформы может дополнительно возвращаться URL, на который происходит перенаправление пользователя для оплаты |
− | == Общий формат запроса / ответа == | + | === Общий формат запроса / ответа === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 78: | Строка 45: | ||
<Source> | <Source> | ||
<ClientId>?</ClientId> | <ClientId>?</ClientId> | ||
− | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе | + | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> |
<APIKey>?</APIKey> | <APIKey>?</APIKey> | ||
− | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе | + | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> |
<Language>?</Language> | <Language>?</Language> | ||
<!--Language — язык, например: RU--> | <!--Language — язык, например: RU--> | ||
Строка 118: | Строка 85: | ||
</Gateway> | </Gateway> | ||
</Gateways> | </Gateways> | ||
+ | <Error> | ||
+ | <NewPrice/> | ||
+ | <Message>Сообщение об ошибке</Message> | ||
+ | </Error> | ||
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 127: | Строка 98: | ||
</div> | </div> | ||
− | == Примеры использования == | + | === Примеры использования === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 192: | Строка 163: | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
− | |||
==== Ответ с ошибкой==== | ==== Ответ с ошибкой==== | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
Строка 204: | Строка 172: | ||
<ResponseBin> | <ResponseBin> | ||
<Error> | <Error> | ||
− | + | <NewPrice/> | |
− | + | <Message>Unknown order status: Problematic</Message> | |
</Error> | </Error> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 214: | Строка 182: | ||
</div> | </div> | ||
</div> | </div> | ||
− | |||
− | |||
− | |||
'''Примечание:''' если параметр RedirectUrl в ответе отсутствует, для инициализации оплаты необходимо использовать метод SelectPayment. | '''Примечание:''' если параметр RedirectUrl в ответе отсутствует, для инициализации оплаты необходимо использовать метод SelectPayment. | ||
Строка 227: | Строка 192: | ||
Запрос позволяет выбрать конкретный способ оплаты и получить платежный код для оплаты заказа, таймлимит на оплату и описание, заданное в настройках ПШ Рапида (содержимое поля "Сообщение пользователю"). | Запрос позволяет выбрать конкретный способ оплаты и получить платежный код для оплаты заказа, таймлимит на оплату и описание, заданное в настройках ПШ Рапида (содержимое поля "Сообщение пользователю"). | ||
− | == Общий формат запроса / ответа == | + | === Общий формат запроса / ответа === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 240: | Строка 205: | ||
<Request> | <Request> | ||
<OrderId>?</OrderId> | <OrderId>?</OrderId> | ||
− | <!--OrderId — | + | <!--OrderId — ID забронированного заказа в системе {{NameSystem}}. Обязательный параметр--> |
<PaymentMethodId>?</PaymentMethodId> | <PaymentMethodId>?</PaymentMethodId> | ||
<!--PaymentMethodId - ID данного способа оплаты, приходит в ответе на запрос PaymentInitialization response. Обязательный параметр--> | <!--PaymentMethodId - ID данного способа оплаты, приходит в ответе на запрос PaymentInitialization response. Обязательный параметр--> | ||
Строка 291: | Строка 256: | ||
</PaymentParameter> | </PaymentParameter> | ||
</PaymentParameters> | </PaymentParameters> | ||
+ | <Error> | ||
+ | <NewPrice/> | ||
+ | <Message>Сообщение об ошибке</Message> | ||
+ | </Error> | ||
</Response> | </Response> | ||
</ResponseBin> | </ResponseBin> | ||
Строка 300: | Строка 269: | ||
</div> | </div> | ||
− | == Примеры использования == | + | === Примеры использования === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 363: | Строка 332: | ||
</div> | </div> | ||
</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://release.mlsd.ru/wsdev/?version%3D1.0%26for%3DSelectPayment"> | ||
+ | <SOAP-ENV:Body> | ||
+ | <ns1:SelectPaymentResponse> | ||
+ | <ResponseBin> | ||
+ | <Error> | ||
+ | <NewPrice/> | ||
+ | <Message>Unknown order status: Problematic</Message> | ||
+ | </Error> | ||
+ | </ResponseBin> | ||
+ | </ns1:SelectPaymentResponse> | ||
+ | </SOAP-ENV:Body> | ||
+ | </SOAP-ENV:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | ==Фиксации оплаты через Агентский АПИ== | ||
+ | |||
+ | Сервис предназначен для фиксации оплаты в заказе. Фиксация оплаты доступна, если IP-адрес пользователя совпадает с IP-адресом, указанным в настройке '''Допустимые IP-адреса для выписки без оплаты или фиксации оплаты''' (раздел '''Настройки системы → Интеграция → Nemo 1.0 (SOAP API)'''). Если IP-адрес не указан или не совпадает, произойдет блокировка оплаты. | ||
+ | Сервис вызывается следующим образом: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=PayOrder | ||
+ | |||
+ | ===Общий формат запроса / ответа=== | ||
+ | |||
+ | В запросе необходимо указать: | ||
+ | * номер заказа в системе Nemo, по которому производится оплата, | ||
+ | * название платежного шлюза - ''Deposit'' или номер ПШ в системе Nemo. | ||
+ | Доступ к оплате имеет только пользователь, у которого есть на это права, а именно: | ||
+ | * Пользователь должен иметь доступ к указанной в запросе платежной системе | ||
+ | * IP адрес пользователя должен соответствовать адресу, указанному в настройке Допустимые ip-адреса для выписки без оплаты или фиксации оплаты | ||
+ | API пользователи, относящиеся к компаниям или субагентствам, не могут выполять выписку до проведения оплаты | ||
+ | |||
+ | <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://nemojulia/nemoflights/?version%3D1.0%26for%3DPayOrder"> | ||
+ | <soapenv:Header/> | ||
+ | <soapenv:Body> | ||
+ | <ver:PayOrder> | ||
+ | <RequestBin> | ||
+ | <Request> | ||
+ | <PayOrder> | ||
+ | <BookID>?</BookID> | ||
+ | <!--BookID — Id забронированного заказа в системе Nemo--> | ||
+ | <PaymentGateway>?</PaymentGateway> | ||
+ | <!--PaymentGateway — Либо название платежного шлюза, например: Deposit, либо идентификатор ПШ в системе Nemo, например: 1880 --> | ||
+ | </PayOrder> | ||
+ | </Request> | ||
+ | <Source> | ||
+ | <ClientId>?</ClientId> | ||
+ | <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | ||
+ | <APIKey>?</APIKey> | ||
+ | <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».--> | ||
+ | <Language>?</Language> | ||
+ | <!--Language — язык, например: RU--> | ||
+ | <Currency>?</Currency> | ||
+ | <!-- Currency — валюта, например: RUB, EUR--> | ||
+ | <ShowNames>?</ShowNames> | ||
+ | <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. --> | ||
+ | <EndUserData> | ||
+ | <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion--> | ||
+ | <EndUserIP>?</EndUserIP> | ||
+ | <!--IP адрес пользователя--> | ||
+ | <EndUserBrowserAgent>?</EndUserBrowserAgent> | ||
+ | <!--Браузер пользователя--> | ||
+ | <RequestOrigin>?</RequestOrigin> | ||
+ | <!--Страна и домен, с которого пользователь совершает поиск/бронирование--> | ||
+ | </EndUserData> | ||
+ | </Source> | ||
+ | </RequestBin> | ||
+ | </ver:PayOrder> | ||
+ | </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=1.0&for=PayOrder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
+ | <SOAP-ENV:Body> | ||
+ | <ns1:PayOrderResponse> | ||
+ | <ResponseBin> | ||
+ | <Response> | ||
+ | <PayOrder ID="" Status="?" Code="?"> | ||
+ | <!--ID — Id брони в системе nemo.travel, целое число, обязательный--> | ||
+ | <!--Status — индикатор состояния брони, возможные значения: | ||
+ | booked — забронировано, | ||
+ | canceled — бронь отменена, | ||
+ | ticket — выписана | ||
+ | UNDEFINED — статус не определён--> | ||
+ | <!--Code — код брони в системе поставщика--> | ||
+ | <QueryPlace xsi:nil="true"/> | ||
+ | <!--QueryPlace — положение брони в очереди, Number — номер брони в очереди--> | ||
+ | <Flight FlightId="?"> | ||
+ | <!--FlightId — Id перелёта в системе nemo.travel--> | ||
+ | <WebService>?</WebService> | ||
+ | <!--WebService — поставщик перелёта--> | ||
+ | <ValCompany>?</ValCompany> | ||
+ | <!--ValCompany — код авиакомпании, являющейся валидирующим перевозчиком, IATA--> | ||
+ | <URL>?</URL> | ||
+ | <!--URL — ссылка на бронирование конкретного перелета--> | ||
+ | <Segments> | ||
+ | <Segment SegNum="?" SegGroupNum="?"> | ||
+ | <!--SegNum — номер сегмента в перелёте--> | ||
+ | <!--SegGroupNum – номер плеча перелёта--> | ||
+ | <SupplierCode>?</SupplierCode> | ||
+ | <!--SupplierCode – номер заказа в системе АК--> | ||
+ | <DepAirp CodeType="?" Name="?">?</DepAirp> | ||
+ | <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва | ||
+ | или SVO — Шереметьево--> | ||
+ | <DepTerminal>?</DepTerminal> | ||
+ | <!--DepTerminal — терминал пункта отправления, если пустое значение, | ||
+ | то в аэропорту всего 1 терминал--> | ||
+ | <ArrAirp CodeType="?" Name="?">?</ArrAirp> | ||
+ | <!--ArrAirp — аэропорт прибытия--> | ||
+ | <ArrTerminal xsi:nil="true"/> | ||
+ | <!--ArrTerminal — терминал пункта прибытия, если пустое значение, | ||
+ | то в аэропорту всего 1 терминал--> | ||
+ | <OpAirline>?</OpAirline> | ||
+ | <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот--> | ||
+ | <OpAirlineName>?</OpAirlineName> | ||
+ | <!--OpAirlineName - авиакомпания перевозчик, например: SU — Аэрофлот--> | ||
+ | <OpAirlineLogo>?</OpAirlineLogo> | ||
+ | <!--OpAirlineLogo - полное наименование АК на кириллице--> | ||
+ | <MarkAirline>?</MarkAirline> | ||
+ | <!--MarkAirline — авиакомпания, продающая перелёт--> | ||
+ | <MarkAirlineName>?</MarkAirlineName> | ||
+ | <!--MarkAirline — авиакомпания, продающая перелёт--> | ||
+ | <MarkAirlineLogo>?</MarkAirlineLogo> | ||
+ | <!--MarkAirlineName - полное наименование АК на кириллице--> | ||
+ | <FlightNumber>?</FlightNumber> | ||
+ | <!--FlightNumber — номер рейса--> | ||
+ | <AircraftName>?</AircraftName> | ||
+ | <!--AircraftName — наименование воздушного судна--> | ||
+ | <AircraftType>?</AircraftType> | ||
+ | <!--AircraftType — тип воздушного судна, код--> | ||
+ | <DepDateTime>?</DepDateTime> | ||
+ | <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <ArrDateTime>?</ArrDateTime> | ||
+ | <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | <StopNum>?</StopNum> | ||
+ | <!--StopNum — количество остановок--> | ||
+ | <StopPoints/> | ||
+ | <BookingCodes> | ||
+ | <BookingCode ClassType="?"> | ||
+ | <!--ClassType — класс перелета, например: economy--> | ||
+ | <BookingCode>?</BookingCode> | ||
+ | <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс | ||
+ | может записываться разными литерами, например: L--> | ||
+ | </BookingCode> | ||
+ | </BookingCodes> | ||
+ | <FlightTime>?</FlightTime> | ||
+ | <!--FlightTime — время перелёта в минутах--> | ||
+ | <RemainingSeats xsi:nil="true"/> | ||
+ | <TimeZone Departure="?" Arrival="?"/> | ||
+ | <!--Departure временная зона аэропорта отправления--> | ||
+ | <!--Arrival — временная зона аэропорта прибытия--> | ||
+ | <ETicket>?</ETicket> | ||
+ | <!--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> | ||
+ | </Segments> | ||
+ | <PricingInfo Refundable="?"> | ||
+ | <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно--> | ||
+ | <PassengerFare Type="?" Quantity="?"> | ||
+ | <!--Type — тип тарифа--> | ||
+ | <!--Quantity — количество пассажиров данного типа--> | ||
+ | <TravellerRef> | ||
+ | <Ref>?</Ref> | ||
+ | <!--Ref — Номер пассажира--> | ||
+ | </TravellerRef> | ||
+ | <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 — номер сегмента, к которому применён тариф--> | ||
+ | <FareFamilies xsi:nil="true"/> | ||
+ | </Tariff> | ||
+ | </Tariffs> | ||
+ | <FareCalc>?</FareCalc> | ||
+ | <!--FareCalc — строка расчёта цены--> | ||
+ | <LastTicketDateTime>?</LastTicketDateTime> | ||
+ | <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС--> | ||
+ | </PassengerFare> | ||
+ | </PricingInfo> | ||
+ | <Commission/> | ||
+ | <Charges Currency="?">?</Charges> | ||
+ | <!--Charges — сборы, Currency — код валюты--> | ||
+ | <TotalPrice Currency="?">?</TotalPrice> | ||
+ | <!--TotalPrice — итоговая цена, Currency — код валюты--> | ||
+ | </Flight> | ||
+ | <Agency/> | ||
+ | <ItinReceipts Encoding="?" Format="?"> | ||
+ | <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат--> | ||
+ | <FareStored xsi:nil="true"/> | ||
+ | <PaymentTransactions> | ||
+ | <Transaction> | ||
+ | <Id>?</Id> | ||
+ | <!--Id — номер транзакции в Немо--> | ||
+ | <Status>?</Status> | ||
+ | <!--Status — статус транзакции--> | ||
+ | <GatewayName>?</GatewayName> | ||
+ | <!--GatewayName — название платежного шлюза--> | ||
+ | <MoneyPaid Currency="?">?</MoneyPaid> | ||
+ | <!--MoneyPaid — сумма оплаты--> | ||
+ | <!--Currency — валюта--> | ||
+ | <PaymentDateTime>?</PaymentDateTime> | ||
+ | <!--PaymentDateTime — дата и время оплаты--> | ||
+ | <CreateDateTime>?</CreateDateTime> | ||
+ | <!--CreateDateTime — дата и время создания платежной транзакции--> | ||
+ | <Description/> | ||
+ | </Transaction> | ||
+ | </PaymentTransactions> | ||
+ | <PaymentStatus>?</PaymentStatus> | ||
+ | <!--PaymentStatus — статус оплаты: | ||
+ | not_paid — не оплачено | ||
+ | partly_paid — оплачено, частично | ||
+ | fully_paid — оплачено, полностью--> | ||
+ | <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> | ||
+ | </PayOrder> | ||
+ | </Response> | ||
+ | </ResponseBin> | ||
+ | </ns1:PayOrderResponse> | ||
+ | </SOAP-ENV:Body> | ||
+ | </SOAP-ENV:Envelope> | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
− | + | ===Возможные ошибки в результате выполнения запроса.=== | |
− | == | + | При выполнения запроса возможны следующие ошибки: |
+ | |||
+ | * ''Deposit gateway is not available for this order'' - оплата проводится под пользователем, не имеющим на это прав. | ||
+ | * ''You have not enough money to pay'' - недостаточно средств на депозитном счету для оплаты. При получении такой ошибки отправляется уведомление на почтовый адрес в профиле компании, указанный в настройке ''Адрес электронной почты''. | ||
+ | * ''Price to pay(X) is greater than in request'' - стоимость к оплате выше чем указана в запросе. | ||
+ | * ''Internal Error: Invalid BookID'' - не указан id заказа. | ||
+ | * ''Internal Error: Object not found'' - не найден заказ с указанным id. | ||
+ | * ''Internal Error: Invalid gateway name'' - не указан id платежного шлюза или его название. | ||
+ | * ''Gateway XXX is not available for this order'' - платежный шлюз недоступен для оплаты. | ||
+ | |||
+ | ==Запрет на выписку неоплаченных заказов по АПИ для субагента== | ||
+ | |||
+ | Субагентам выписка по АПИ доступна только в том случае, если заказ ''имеет статус оплаты''. В противном случае выписка блокируется. | ||
− | + | Выписка заказов, ''не имеющих статуса оплаты'', доступна только менеджеру корневого агентства. Для успешной операции IP-адрес менеджера должен совпадать с IP-адресом параметра '''Допустимые IP-адреса для выписки без оплаты или фиксации оплаты''' в разделе '''Настройки системы → Интеграция → Nemo 1.0 (SOAP API)'''. | |
− | *[[Agency API. Payments]] | + | == См. также == |
+ | * [[Агентский API Авиабилеты]] | ||
+ | * [[Agency API. Payments]] |
Текущая версия на 15:52, 5 декабря 2018
Содержание
Подключение
Это сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов.
Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».
После добавления пользователя ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
Получение списка доступных способов оплаты
WSDL находится по адресу: http://CLIENT_DOMAIN/wsdev/wsdl.php?version=1.0&for=PaymentInitialization На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида.
Для получения результата необходим параметр «OrderId» — ID забронированного заказа, который необходимо оплатить.
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ. По каждому платёжному шлюзу возвращается следующая информация:
- id способа оплаты
- имя платежного шлюза
- дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз
- URL, перенаправляющий пользователя непосредственно на страницу оплаты через данный платёжный шлюз
- в случае отправки запроса с мобильной платформы может дополнительно возвращаться URL, на который происходит перенаправление пользователя для оплаты
Общий формат запроса / ответа
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DPaymentInitialization">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:InitPayment>
5 <RequestBin>
6 <Request>
7 <OrderId>?</OrderId>
8 <!--OrderId — Id забронированного заказа в системе Nemo-->
9 <!--Optional:-->
10 <ReturnUrlToCatch>?</ReturnUrlToCatch> <!--необязательный-->
11 <!--ReturnUrlToCatch - Признак возвращать ли адрес, на который будет перенаправлен пользователь после оплаты: true(возвращать)/false(не возвращать)-->
12 <!--Optional:-->
13 </Request>
14 <Source>
15 <ClientId>?</ClientId>
16 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
17 <APIKey>?</APIKey>
18 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
19 <Language>?</Language>
20 <!--Language — язык, например: RU-->
21 <Currency>?</Currency>
22 <!-- Currency — валюта, например: RUB, EUR-->
23 </Source>
24 </RequestBin>
25 </ver:InitPayment>
26 </soapenv:Body>
27 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DPaymentInitialization">
2 <SOAP-ENV:Body>
3 <ns1:InitPaymentResponse>
4 <ResponseBin>
5 <Response>
6 <Gateways>
7 <Gateway>
8 <PaymentMethodId>?</PaymentMethodId>
9 <!--PaymentMethodId - ID способа оплаты. Необходим при использовании запроса SelectPayment (см. ниже)-->
10 <GatewayName>?</GatewayName>
11 <!--GatewayName — имя платежного шлюза. Например: Uniteller -->
12 <PaymentCharge Currency="?">?</PaymentCharge>
13 <!--PaymentCharge — наценка, которая добавляется к заказу при оплате через данный шлюз, Currency — код валюты (из запроса)-->
14 <RedirectUrl>?</RedirectUrl>
15 <!--RedirectUrl — URL, по которому происходит перенаправление пользователя непосредственно на страницу оплаты через данный платежный шлюз-->
16 <UrlToCatch>?</UrlToCatch>
17 <!--UrlToCatch — URL для перехвата и дальнейшей обработки в случае отправки запроса с мобильной платформы, ведущий на страницу заказа-->
18 </Gateway>
19 </Gateways>
20 <Error>
21 <NewPrice/>
22 <Message>Сообщение об ошибке</Message>
23 </Error>
24 </Response>
25 </ResponseBin>
26 </ns1:InitPaymentResponse>
27 </SOAP-ENV:Body>
28 </SOAP-ENV:Envelope>
Примеры использования
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DPaymentInitialization">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:InitPayment>
5 <RequestBin>
6 <Request>
7 <OrderId>276965</OrderId>
8 <ReturnUrlToCatch>true</ReturnUrlToCatch>
9 </Request>
10 <Source>
11 <ClientId>---</ClientId>
12 <APIKey>---</APIKey>
13 <Language>RU</Language>
14 <Currency>RUB</Currency>
15 </Source>
16 </RequestBin>
17 </ver:InitPayment>
18 </soapenv:Body>
19 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DPaymentInitialization">
2 <SOAP-ENV:Body>
3 <ns1:InitPaymentResponse>
4 <ResponseBin>
5 <Response>
6 <Gateways>
7 <Gateway>
8 <PaymentMethodId>1075</PaymentMethodId>
9 <GatewayName>Uniteller</GatewayName>
10 <PaymentCharge Currency="RUB">81.54</PaymentCharge>
11 <RedirectUrl>http://CLIENT_DOMAIN/payment__select_outside?booking_id=276965&one_time_booking_code=PZ7981&method=27</RedirectUrl>
12 <!--Пример ссылки-->
13 <UrlToCatch>http://CLIENT_DOMAIN/poffice__bookinfo?&booking_id=276965</UrlToCatch>
14 <!--Пример ссылки-->
15 </Gateway>
16 <Gateway>
17 <PaymentMethodId>1079</PaymentMethodId>
18 <GatewayName>Rapida</GatewayName>
19 <PaymentCharge Currency="RUB">123</PaymentCharge>
20 <RedirectUrl/>
21 <UrlToCatch xsi:nil="true"/>
22 </Gateway>
23 </Gateways>
24 </Response>
25 </ResponseBin>
26 </ns1:InitPaymentResponse>
27 </SOAP-ENV:Body>
28 </SOAP-ENV:Envelope>
Ответ с ошибкой
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://release.mlsd.ru/wsdev/?version%3D1.0%26for%3DPaymentInitialization">
2 <SOAP-ENV:Body>
3 <ns1:InitPaymentResponse>
4 <ResponseBin>
5 <Error>
6 <NewPrice/>
7 <Message>Unknown order status: Problematic</Message>
8 </Error>
9 </ResponseBin>
10 </ns1:InitPaymentResponse>
11 </SOAP-ENV:Body>
12 </SOAP-ENV:Envelope>
Примечание: если параметр RedirectUrl в ответе отсутствует, для инициализации оплаты необходимо использовать метод SelectPayment.
Выбор конкретного способа оплаты
WSDL находится по адресу: http://CLIENT_DOMAIN/wsdev/wsdl.php?version=1.0&for=SelectPayment
На данный момент этот веб-метод доступен только для платежного шлюза Рапида.
Запрос позволяет выбрать конкретный способ оплаты и получить платежный код для оплаты заказа, таймлимит на оплату и описание, заданное в настройках ПШ Рапида (содержимое поля "Сообщение пользователю").
Общий формат запроса / ответа
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DSelectPayment">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:SelectPayment>
5 <RequestBin>
6 <Request>
7 <OrderId>?</OrderId>
8 <!--OrderId — ID забронированного заказа в системе {{NameSystem}}. Обязательный параметр-->
9 <PaymentMethodId>?</PaymentMethodId>
10 <!--PaymentMethodId - ID данного способа оплаты, приходит в ответе на запрос PaymentInitialization response. Обязательный параметр-->
11 </Request>
12 <Source>
13 <ClientId>?</ClientId>
14 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе "Администрирование" - "Веб-служба. Авторизация". Обязательный параметр.-->
15 <APIKey>?</APIKey>
16 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе "Администрирование" - "Веб-служба. Авторизация". Обязательный параметр.-->
17 <Language>?</Language>
18 <!--Язык — пример: RU-->
19 <Currency>?</Currency>
20 <!-- Валюта — примеры: RUB, EUR-->
21 </Source>
22 </RequestBin>
23 </ver:SelectPayment>
24 </soapenv:Body>
25 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DSelectPayment">
2 <SOAP-ENV:Body>
3 <ns1:SelectPaymentResponse>
4 <ResponseBin>
5 <Response>
6 <TransactionId>?</TransactionId>
7 <!--TransactionId - ID платежной транзакции в системе Немо-->
8 <PaymentParameters>
9 <PaymentParameter>
10 <Key>Code</Key>
11 <Value>?</Value>
12 <!--Value - платежный код, приходит от платежного шлюза Рапида-->
13 </PaymentParameter>
14 <PaymentParameter>
15 <Key>Timelimit</Key>
16 <Value>?</Value>
17 <!--Value - таймлимит на оплату заказа-->
18 </PaymentParameter>
19 <PaymentParameter>
20 <Key>Description</Key>
21 <Value>?</Value>
22 <!--Value - краткое сообщение пользователю. Может содержать упомянутые выше платежный код, таймлимит и др. информацию. Настраивается в настройках реквизитов ПШ Рапида в соответствующем поле.-->
23 </PaymentParameter>
24 </PaymentParameters>
25 <Error>
26 <NewPrice/>
27 <Message>Сообщение об ошибке</Message>
28 </Error>
29 </Response>
30 </ResponseBin>
31 </ns1:SelectPaymentResponse>
32 </SOAP-ENV:Body>
33 </SOAP-ENV:Envelope>
Примеры использования
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DSelectPayment">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:SelectPayment>
5 <RequestBin>
6 <Request>
7 <OrderId>279712</OrderId>
8 <PaymentMethodId>1079</PaymentMethodId>
9 </Request>
10 <Source>
11 <ClientId>--</ClientId>
12 <APIKey>--</APIKey>
13 <Language>RU</Language>
14 <Currency>RUB</Currency>
15 </Source>
16 </RequestBin>
17 </ver:SelectPayment>
18 </soapenv:Body>
19 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/wsdev/?version%3D1.0%26for%3DSelectPayment">
2 <SOAP-ENV:Body>
3 <ns1:SelectPaymentResponse>
4 <ResponseBin>
5 <Response>
6 <TransactionId>117608085</TransactionId>
7 <PaymentParameters>
8 <PaymentParameter>
9 <Key>Code</Key>
10 <Value>a117608085a0CGN73</Value>
11 </PaymentParameter>
12 <PaymentParameter>
13 <Key>Timelimit</Key>
14 <Value>23:59 20.01.2015</Value>
15 </PaymentParameter>
16 <PaymentParameter>
17 <Key>Description</Key>
18 <Value>Ваш платежный код - a117608085a0CGN73. Оплатить заказ необходимо до 23:59 20.01.2015</Value>
19 </PaymentParameter>
20 </PaymentParameters>
21 </Response>
22 </ResponseBin>
23 </ns1:SelectPaymentResponse>
24 </SOAP-ENV:Body>
25 </SOAP-ENV:Envelope>
Ответ с ошибкой
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://release.mlsd.ru/wsdev/?version%3D1.0%26for%3DSelectPayment">
2 <SOAP-ENV:Body>
3 <ns1:SelectPaymentResponse>
4 <ResponseBin>
5 <Error>
6 <NewPrice/>
7 <Message>Unknown order status: Problematic</Message>
8 </Error>
9 </ResponseBin>
10 </ns1:SelectPaymentResponse>
11 </SOAP-ENV:Body>
12 </SOAP-ENV:Envelope>
Фиксации оплаты через Агентский АПИ
Сервис предназначен для фиксации оплаты в заказе. Фиксация оплаты доступна, если IP-адрес пользователя совпадает с IP-адресом, указанным в настройке Допустимые IP-адреса для выписки без оплаты или фиксации оплаты (раздел Настройки системы → Интеграция → Nemo 1.0 (SOAP API)). Если IP-адрес не указан или не совпадает, произойдет блокировка оплаты. Сервис вызывается следующим образом: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=PayOrder
Общий формат запроса / ответа
В запросе необходимо указать:
- номер заказа в системе Nemo, по которому производится оплата,
- название платежного шлюза - Deposit или номер ПШ в системе Nemo.
Доступ к оплате имеет только пользователь, у которого есть на это права, а именно:
- Пользователь должен иметь доступ к указанной в запросе платежной системе
- IP адрес пользователя должен соответствовать адресу, указанному в настройке Допустимые ip-адреса для выписки без оплаты или фиксации оплаты
API пользователи, относящиеся к компаниям или субагентствам, не могут выполять выписку до проведения оплаты
Запрос
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ver="http://nemojulia/nemoflights/?version%3D1.0%26for%3DPayOrder">
2 <soapenv:Header/>
3 <soapenv:Body>
4 <ver:PayOrder>
5 <RequestBin>
6 <Request>
7 <PayOrder>
8 <BookID>?</BookID>
9 <!--BookID — Id забронированного заказа в системе Nemo-->
10 <PaymentGateway>?</PaymentGateway>
11 <!--PaymentGateway — Либо название платежного шлюза, например: Deposit, либо идентификатор ПШ в системе Nemo, например: 1880 -->
12 </PayOrder>
13 </Request>
14 <Source>
15 <ClientId>?</ClientId>
16 <!--ClientId — ID клиента в системе Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
17 <APIKey>?</APIKey>
18 <!--APIKey — секретный ключ доступа к API Nemo. Можно посмотреть/добавить в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».-->
19 <Language>?</Language>
20 <!--Language — язык, например: RU-->
21 <Currency>?</Currency>
22 <!-- Currency — валюта, например: RUB, EUR-->
23 <ShowNames>?</ShowNames>
24 <!-- ShowNames — отображение названий аэропортов, авиакомпаний и воздушных судов: true - отображать, false - не отображать. Возвращает значение на том языке, который был указан в запросе. Для RU - русский вариант, для UKR, EN, ES - латинский вариант. Опциональный элемент. -->
25 <EndUserData>
26 <!--Блок с данными о конечном пользователе, необязательный, но необходим при при использовании запросов поиска и бронирования для поставщика TravelFusion-->
27 <EndUserIP>?</EndUserIP>
28 <!--IP адрес пользователя-->
29 <EndUserBrowserAgent>?</EndUserBrowserAgent>
30 <!--Браузер пользователя-->
31 <RequestOrigin>?</RequestOrigin>
32 <!--Страна и домен, с которого пользователь совершает поиск/бронирование-->
33 </EndUserData>
34 </Source>
35 </RequestBin>
36 </ver:PayOrder>
37 </soapenv:Body>
38 </soapenv:Envelope>
Ответ
1 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://CLIENT_DOMAIN/nemoflights/?version=1.0&for=PayOrder" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2 <SOAP-ENV:Body>
3 <ns1:PayOrderResponse>
4 <ResponseBin>
5 <Response>
6 <PayOrder ID="" Status="?" Code="?">
7 <!--ID — Id брони в системе nemo.travel, целое число, обязательный-->
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.travel-->
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 <SupplierCode>?</SupplierCode>
29 <!--SupplierCode – номер заказа в системе АК-->
30 <DepAirp CodeType="?" Name="?">?</DepAirp>
31 <!--DepAirp — аэропорт отправления, например: MOW — любой аэропорт в г.Москва
32 или SVO — Шереметьево-->
33 <DepTerminal>?</DepTerminal>
34 <!--DepTerminal — терминал пункта отправления, если пустое значение,
35 то в аэропорту всего 1 терминал-->
36 <ArrAirp CodeType="?" Name="?">?</ArrAirp>
37 <!--ArrAirp — аэропорт прибытия-->
38 <ArrTerminal xsi:nil="true"/>
39 <!--ArrTerminal — терминал пункта прибытия, если пустое значение,
40 то в аэропорту всего 1 терминал-->
41 <OpAirline>?</OpAirline>
42 <!--OpAirline — авиакомпания перевозчик, например: SU — Аэрофлот-->
43 <OpAirlineName>?</OpAirlineName>
44 <!--OpAirlineName - авиакомпания перевозчик, например: SU — Аэрофлот-->
45 <OpAirlineLogo>?</OpAirlineLogo>
46 <!--OpAirlineLogo - полное наименование АК на кириллице-->
47 <MarkAirline>?</MarkAirline>
48 <!--MarkAirline — авиакомпания, продающая перелёт-->
49 <MarkAirlineName>?</MarkAirlineName>
50 <!--MarkAirline — авиакомпания, продающая перелёт-->
51 <MarkAirlineLogo>?</MarkAirlineLogo>
52 <!--MarkAirlineName - полное наименование АК на кириллице-->
53 <FlightNumber>?</FlightNumber>
54 <!--FlightNumber — номер рейса-->
55 <AircraftName>?</AircraftName>
56 <!--AircraftName — наименование воздушного судна-->
57 <AircraftType>?</AircraftType>
58 <!--AircraftType — тип воздушного судна, код-->
59 <DepDateTime>?</DepDateTime>
60 <!--DepDateTime — дата и время отправления, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
61 <ArrDateTime>?</ArrDateTime>
62 <!--ArrDateTime — дата и время прибытия, формат ГГГГ-MM-ДДTЧЧ:ММ:СС-->
63 <StopNum>?</StopNum>
64 <!--StopNum — количество остановок-->
65 <StopPoints/>
66 <BookingCodes>
67 <BookingCode ClassType="?">
68 <!--ClassType — класс перелета, например: economy-->
69 <BookingCode>?</BookingCode>
70 <!--BookingCode — код класса бронирования, у разных авиакомпаний один и тот же класс
71 может записываться разными литерами, например: L-->
72 </BookingCode>
73 </BookingCodes>
74 <FlightTime>?</FlightTime>
75 <!--FlightTime — время перелёта в минутах-->
76 <RemainingSeats xsi:nil="true"/>
77 <TimeZone Departure="?" Arrival="?"/>
78 <!--Departure временная зона аэропорта отправления-->
79 <!--Arrival — временная зона аэропорта прибытия-->
80 <ETicket>?</ETicket>
81 <!--ETicket — признак электронного билета, значения: true / false-->
82 <isCharter>?</isCharter>
83 <!--isCharter — признак чартерного перелета, значения: true / false-->
84 <BaggageAllowances>
85 <!--BaggageAllowances — информация о багаже-->
86 <BaggageAllowance>
87 <PassengerType>?</PassengerType>
88 <!--PassengerType — тип пассажира, соответстует типу тарифа в PricingInfo -->
89 <Value>?</Value>
90 <!--Value — количество-->
91 <Measurement>?</Measurement>
92 <!--Measurement — мера измерения, может принимать значения: kg — килограмм, pc — багажное место, lb — фунт-->
93 </BaggageAllowance>
94 </BaggageAllowances>
95 </Segment>
96 </Segments>
97 <PricingInfo Refundable="?">
98 <!--Refundable — возвратный/невозвратный, true/false. Если пустое, то не известно-->
99 <PassengerFare Type="?" Quantity="?">
100 <!--Type — тип тарифа-->
101 <!--Quantity — количество пассажиров данного типа-->
102 <TravellerRef>
103 <Ref>?</Ref>
104 <!--Ref — Номер пассажира-->
105 </TravellerRef>
106 <BaseFare Currency="?" Amount="?"/>
107 <!--BaseFare — базовая стоимость, в базовой валюте. Currency — код валюты, Amount — значение цены-->
108 <EquiveFare Currency="?" Amount="?"/>
109 <!--EquiveFare — базовая стоимость, в эквивалентной валюте(валюте продажи).
110 Currency — код валюты, Amount — значение цены-->
111 <TotalFare Currency="?" Amount="?"/>
112 <!--TotalFare — суммарная стоимость, в эквивалентной валюте.
113 Currency — код валюты, Amount — значение цены-->
114 <Taxes>
115 <Tax CurCode="?" TaxCode="?" Amount="?"/>
116 <!--CurCode — код валюты, TaxCode — код таксы, Amount — сумма таксы-->
117 </Taxes>
118 <Tariffs>
119 <Tariff Code="?" SegNum="?">
120 <!--Code — код тарифа, SegNum — номер сегмента, к которому применён тариф-->
121 <FareFamilies xsi:nil="true"/>
122 </Tariff>
123 </Tariffs>
124 <FareCalc>?</FareCalc>
125 <!--FareCalc — строка расчёта цены-->
126 <LastTicketDateTime>?</LastTicketDateTime>
127 <!--LastTicketDateTime — дата и время таймлимита по выписке в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
128 </PassengerFare>
129 </PricingInfo>
130 <Commission/>
131 <Charges Currency="?">?</Charges>
132 <!--Charges — сборы, Currency — код валюты-->
133 <TotalPrice Currency="?">?</TotalPrice>
134 <!--TotalPrice — итоговая цена, Currency — код валюты-->
135 </Flight>
136 <Agency/>
137 <ItinReceipts Encoding="?" Format="?">
138 <!--ItinReceipts — маршрут квитанция, Encoding — кодировка, Format — формат-->
139 <FareStored xsi:nil="true"/>
140 <PaymentTransactions>
141 <Transaction>
142 <Id>?</Id>
143 <!--Id — номер транзакции в Немо-->
144 <Status>?</Status>
145 <!--Status — статус транзакции-->
146 <GatewayName>?</GatewayName>
147 <!--GatewayName — название платежного шлюза-->
148 <MoneyPaid Currency="?">?</MoneyPaid>
149 <!--MoneyPaid — сумма оплаты-->
150 <!--Currency — валюта-->
151 <PaymentDateTime>?</PaymentDateTime>
152 <!--PaymentDateTime — дата и время оплаты-->
153 <CreateDateTime>?</CreateDateTime>
154 <!--CreateDateTime — дата и время создания платежной транзакции-->
155 <Description/>
156 </Transaction>
157 </PaymentTransactions>
158 <PaymentStatus>?</PaymentStatus>
159 <!--PaymentStatus — статус оплаты:
160 not_paid — не оплачено
161 partly_paid — оплачено, частично
162 fully_paid — оплачено, полностью-->
163 <Travellers/>
164 <AutoCancelDate>?</AutoCancelDate>
165 <!--AutoCancelDate — дата и время таймлимита автоаннуляции в формате ГГГГ-MM-ДДTЧЧ:ММ:СС определяемые по настройкам агентства-->
166 <TimeLimits>
167 <TicketingTimeLimit>?</TicketingTimeLimit>
168 <!--TicketingTimeLimit — Таймлимит на выписку в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
169 <PriceTimeLimit>?</PriceTimeLimit>
170 <!--PriceTimeLimit — Таймлимит цены из ГРС в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
171 <AdvancedPurchaseTimeLimit>?</AdvancedPurchaseTimeLimit>
172 <!--AdvancedPurchaseTimeLimit — Таймлимит цены из тарифных правил в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
173 <AgencyTimeLimit>?</AgencyTimeLimit>
174 <!--AgencyTimeLimit - Таймлимит по настройкам в формате ГГГГ-MM-ДДTЧЧ:ММ:СС-->
175 </TimeLimits>
176 </PayOrder>
177 </Response>
178 </ResponseBin>
179 </ns1:PayOrderResponse>
180 </SOAP-ENV:Body>
181 </SOAP-ENV:Envelope>
Возможные ошибки в результате выполнения запроса.
При выполнения запроса возможны следующие ошибки:
- Deposit gateway is not available for this order - оплата проводится под пользователем, не имеющим на это прав.
- You have not enough money to pay - недостаточно средств на депозитном счету для оплаты. При получении такой ошибки отправляется уведомление на почтовый адрес в профиле компании, указанный в настройке Адрес электронной почты.
- Price to pay(X) is greater than in request - стоимость к оплате выше чем указана в запросе.
- Internal Error: Invalid BookID - не указан id заказа.
- Internal Error: Object not found - не найден заказ с указанным id.
- Internal Error: Invalid gateway name - не указан id платежного шлюза или его название.
- Gateway XXX is not available for this order - платежный шлюз недоступен для оплаты.
Запрет на выписку неоплаченных заказов по АПИ для субагента
Субагентам выписка по АПИ доступна только в том случае, если заказ имеет статус оплаты. В противном случае выписка блокируется.
Выписка заказов, не имеющих статуса оплаты, доступна только менеджеру корневого агентства. Для успешной операции IP-адрес менеджера должен совпадать с IP-адресом параметра Допустимые IP-адреса для выписки без оплаты или фиксации оплаты в разделе Настройки системы → Интеграция → Nemo 1.0 (SOAP API).