Агентский API Оплата: различия между версиями
(→См. также) |
м (→Возможные ошибки в результате выполнения запроса.) |
||
(не показано 25 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Интеграция]] | ||
+ | [[Категория:Агентский API]] | ||
== Подключение == | == Подключение == | ||
Строка 5: | Строка 7: | ||
Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)»<!--{{Menu|Настройки системы|Интеграция|Nemo 1.0 (SOAP API)}}-->. | Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)»<!--{{Menu|Настройки системы|Интеграция|Nemo 1.0 (SOAP API)}}-->. | ||
− | После добавления пользователя | + | После добавления пользователя ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Получение списка доступных способов оплаты == | == Получение списка доступных способов оплаты == | ||
Строка 52: | Строка 14: | ||
На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида. | На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида. | ||
− | Для получения результата необходим параметр | + | Для получения результата необходим параметр «OrderId» — ID забронированного заказа, который необходимо оплатить. |
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ. | Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ. | ||
Строка 60: | Строка 22: | ||
* дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз | * дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз | ||
* URL, перенаправляющий пользователя непосредственно на страницу оплаты через данный платёжный шлюз | * URL, перенаправляющий пользователя непосредственно на страницу оплаты через данный платёжный шлюз | ||
− | * в случае отправки запроса с мобильной платформы может дополнительно | + | * в случае отправки запроса с мобильной платформы может дополнительно возвращаться URL, на который происходит перенаправление пользователя для оплаты |
− | == Общий формат запроса / ответа == | + | === Общий формат запроса / ответа === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 136: | Строка 98: | ||
</div> | </div> | ||
− | == Примеры использования == | + | === Примеры использования === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 230: | Строка 192: | ||
Запрос позволяет выбрать конкретный способ оплаты и получить платежный код для оплаты заказа, таймлимит на оплату и описание, заданное в настройках ПШ Рапида (содержимое поля "Сообщение пользователю"). | Запрос позволяет выбрать конкретный способ оплаты и получить платежный код для оплаты заказа, таймлимит на оплату и описание, заданное в настройках ПШ Рапида (содержимое поля "Сообщение пользователю"). | ||
− | == Общий формат запроса / ответа == | + | === Общий формат запроса / ответа === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 307: | Строка 269: | ||
</div> | </div> | ||
− | == Примеры использования == | + | === Примеры использования === |
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 391: | Строка 353: | ||
</div> | </div> | ||
− | ==Фиксации оплаты через Агентский АПИ | + | ==Фиксации оплаты через Агентский АПИ== |
− | Сервис предназначен для фиксации оплаты в заказе. | + | Сервис предназначен для фиксации оплаты в заказе. Фиксация оплаты доступна, если IP-адрес пользователя совпадает с IP-адресом, указанным в настройке '''Допустимые IP-адреса для выписки без оплаты или фиксации оплаты''' (раздел '''Настройки системы → Интеграция → Nemo 1.0 (SOAP API)'''). Если IP-адрес не указан или не совпадает, произойдет блокировка оплаты. |
Сервис вызывается следующим образом: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=PayOrder | Сервис вызывается следующим образом: http://CLIENT_DOMAIN/nemoflights/wsdl.php?for=PayOrder | ||
Строка 400: | Строка 362: | ||
В запросе необходимо указать: | В запросе необходимо указать: | ||
* номер заказа в системе Nemo, по которому производится оплата, | * номер заказа в системе Nemo, по которому производится оплата, | ||
− | * название платежного шлюза - Deposit или | + | * название платежного шлюза - ''Deposit'' или номер ПШ в системе Nemo. |
Доступ к оплате имеет только пользователь, у которого есть на это права, а именно: | Доступ к оплате имеет только пользователь, у которого есть на это права, а именно: | ||
− | * | + | * Пользователь должен иметь доступ к указанной в запросе платежной системе |
* IP адрес пользователя должен соответствовать адресу, указанному в настройке Допустимые ip-адреса для выписки без оплаты или фиксации оплаты | * IP адрес пользователя должен соответствовать адресу, указанному в настройке Допустимые ip-адреса для выписки без оплаты или фиксации оплаты | ||
+ | API пользователи, относящиеся к компаниям или субагентствам, не могут выполять выписку до проведения оплаты | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:1000px"> | ||
Строка 420: | Строка 383: | ||
<!--BookID — Id забронированного заказа в системе Nemo--> | <!--BookID — Id забронированного заказа в системе Nemo--> | ||
<PaymentGateway>?</PaymentGateway> | <PaymentGateway>?</PaymentGateway> | ||
− | <!--PaymentGateway — | + | <!--PaymentGateway — Либо название платежного шлюза, например: Deposit, либо идентификатор ПШ в системе Nemo, например: 1880 --> |
</PayOrder> | </PayOrder> | ||
</Request> | </Request> | ||
Строка 621: | Строка 584: | ||
fully_paid — оплачено, полностью--> | fully_paid — оплачено, полностью--> | ||
<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> | ||
</PayOrder> | </PayOrder> | ||
− | + | </Response> | |
</ResponseBin> | </ResponseBin> | ||
</ns1:PayOrderResponse> | </ns1:PayOrderResponse> | ||
Строка 631: | Строка 606: | ||
</div> | </div> | ||
− | + | ===Возможные ошибки в результате выполнения запроса.=== | |
При выполнения запроса возможны следующие ошибки: | При выполнения запроса возможны следующие ошибки: | ||
− | * ''Deposit gateway is not available for this order'' - оплата проводится под пользователем не имеющим на это прав. | + | * ''Deposit gateway is not available for this order'' - оплата проводится под пользователем, не имеющим на это прав. |
* ''You have not enough money to pay'' - недостаточно средств на депозитном счету для оплаты. При получении такой ошибки отправляется уведомление на почтовый адрес в профиле компании, указанный в настройке ''Адрес электронной почты''. | * ''You have not enough money to pay'' - недостаточно средств на депозитном счету для оплаты. При получении такой ошибки отправляется уведомление на почтовый адрес в профиле компании, указанный в настройке ''Адрес электронной почты''. | ||
* ''Price to pay(X) is greater than in request'' - стоимость к оплате выше чем указана в запросе. | * ''Price to pay(X) is greater than in request'' - стоимость к оплате выше чем указана в запросе. | ||
Строка 642: | Строка 617: | ||
* ''Internal Error: Invalid gateway name'' - не указан id платежного шлюза или его название. | * ''Internal Error: Invalid gateway name'' - не указан id платежного шлюза или его название. | ||
* ''Gateway XXX is not available for this order'' - платежный шлюз недоступен для оплаты. | * ''Gateway XXX is not available for this order'' - платежный шлюз недоступен для оплаты. | ||
+ | |||
+ | ==Запрет на выписку неоплаченных заказов по АПИ для субагента== | ||
+ | |||
+ | Субагентам выписка по АПИ доступна только в том случае, если заказ ''имеет статус оплаты''. В противном случае выписка блокируется. | ||
+ | |||
+ | Выписка заказов, ''не имеющих статуса оплаты'', доступна только менеджеру корневого агентства. Для успешной операции IP-адрес менеджера должен совпадать с IP-адресом параметра '''Допустимые IP-адреса для выписки без оплаты или фиксации оплаты''' в разделе '''Настройки системы → Интеграция → Nemo 1.0 (SOAP API)'''. | ||
== См. также == | == См. также == | ||
− | * [[Агентский | + | * [[Агентский API Авиабилеты]] |
* [[Agency API. Payments]] | * [[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).