4253
правки
Изменения
→См. также
</div>
</div>
==Фиксации оплаты через Агентский АПИ для платежного шлюза Депозит==
Сервис предназначен для фиксации оплаты в заказе. Важно учесть, что фиксация оплаты станет доступна только при условии, что IP-адрес пользователя совпадает с IP-адресом, указанным в настройке Допустимые IP-адреса для выписки без оплаты или фиксации оплаты. Если IP-адрес не указан или не совпадает, произойдет блокировка оплаты.
Сервис вызывается следующим образом: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=PayOrder
===Общий формат запроса / ответа===
В запросе необходимо указать:
* номер заказа в системе Nemo, по которому производится оплата,
* название платежного шлюза - Deposit или id ПШ в системе Nemo.
Доступ к оплате имеет только пользователь, у которого есть на это права, а именно:
* ClientId и APIKey должны быть менеджера или эксперта субагентства
* IP адрес пользователя должен соответствовать адресу, указанному в настройке Допустимые ip-адреса для выписки без оплаты или фиксации оплаты
<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 — Название платежного шлюза идентификатор ПШ в системе Nemo - Deposit/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/>
</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'' - платежный шлюз недоступен для оплаты.
== См. также ==
* [[Агентский АПИ]]
* [[Agency API. Payments]]