Агентский API Оплата: различия между версиями

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Запрет на выписку неоплаченных заказов по АПИ для субагента)
м (Возможные ошибки в результате выполнения запроса.)
 
(не показана 21 промежуточная версия 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 ключ клиента, которые нужно использовать для подключения.
+
После добавления пользователя ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
 
 
== Фиксация оплаты внешним запросом ==
 
 
 
Сервис предназначен для приема информации о получении оплаты и простановки статуса «Оплачено» для определенного заказа.
 
 
 
Сервис вызывается следующим образом: http://CLIENT_DOMAIN/index.php?go=payment/bill
 
 
 
=== Подпись запроса ===
 
 
 
Подпись <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">sig</syntaxhighlight> сверяется c <syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">md5($booking_id.$secret)</syntaxhighlight>
 
 
 
<syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">$booking_id</syntaxhighlight> — ID заказа в системе {{NameSystem}},
 
 
 
<syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">$secret</syntaxhighlight> — значение настройки в разделе «Управление сайтом» → «Домены и протоколы» в поле {{Setting|Ключ безопасности для сервиса выставления оплаты и получения XML выгрузки}}.
 
 
 
Для отправки запроса используется метод GET. В ответ на запрос будет получена строка вида: ''«Заказ был оплачен по транзакции 117892581 на сумму 3600RUB».''
 
 
 
Возможные ошибки:
 
*Введите корректные billing_id / booking_id
 
*Доступ заблокирован
 
*Не совпала контрольная сумма
 
*Заказ не требует оплаты
 
 
 
'''Пример:'''
 
 
 
<pre>
 
Если
 
 
 
booking_id: 263330
 
ключ безопасности: 12345
 
 
 
То
 
 
 
sig=md5(26333012345) = a439a4492131f4b866ed1a17d018d3a6
 
</pre>
 
 
 
Для фиксации оплаты получается такая ссылка:
 
http://CLIENT_DOMAIN/index.php?go=payment/bill&booking_id=263330&sig=a439a4492131f4b866ed1a17d018d3a6
 
 
 
Дополнительная информация в статье [[Интеграция]]
 
  
 
==  Получение списка доступных способов оплаты ==
 
==  Получение списка доступных способов оплаты ==
Строка 52: Строка 14:
 
На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида.
 
На данный момент метод доступен для платежных шлюзов Юнителлер и Рапида.
  
Для получения результата необходим параметр «OrderId» — ID забронированного заказа, который необходимо оплатить.  
+
Для получения результата необходим параметр «OrderId» — ID забронированного заказа, который необходимо оплатить.  
  
 
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ.
 
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ.
Строка 60: Строка 22:
 
* дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз
 
* дополнительную наценку, которая добавляется к заказу при проведении оплаты через данный шлюз
 
* URL, перенаправляющий пользователя непосредственно на страницу оплаты через данный платёжный шлюз
 
* 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-адреса для выписки без оплаты или фиксации оплаты. Если IP-адрес не указан или не совпадает, произойдет блокировка оплаты.  
+
Сервис предназначен для фиксации оплаты в заказе. Фиксация оплаты доступна, если 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
  
Строка 402: Строка 364:
 
* название платежного шлюза - ''Deposit'' или номер ПШ в системе Nemo.  
 
* название платежного шлюза - ''Deposit'' или номер ПШ в системе Nemo.  
 
Доступ к оплате имеет только пользователь, у которого есть на это права, а именно:
 
Доступ к оплате имеет только пользователь, у которого есть на это права, а именно:
* ClientId и APIKey должны быть менеджера или эксперта субагентства
+
* Пользователь должен иметь доступ к указанной в запросе платежной системе
 
* 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 — Название платежного шлюза идентификатор ПШ в системе Nemo - Deposit/1880 -->
+
         <!--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>
+
    </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'' - стоимость к оплате выше чем указана в запросе.
Строка 645: Строка 620:
 
==Запрет на выписку неоплаченных заказов по АПИ для субагента==
 
==Запрет на выписку неоплаченных заказов по АПИ для субагента==
  
Выписка по АПИ субагенту доступна только в том случае, если заказ имеет статус оплаты. В противном случае выписка блокируется. <br>
+
Субагентам выписка по АПИ доступна только в том случае, если заказ ''имеет статус оплаты''. В противном случае выписка блокируется.  
Менеджеру корневого агентства доступна выписка заказов, не имеющих статуса оплаты, но при этом IP-адрес менеджера должен совпадать с IP-адресом параметра ''Допустимые IP-адреса для выписки без оплаты или фиксации оплаты''.
+
 
 +
Выписка заказов, ''не имеющих статуса оплаты'', доступна только менеджеру корневого агентства. Для успешной операции 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&amp;one_time_booking_code=PZ7981&amp;method=27</RedirectUrl>
12                      <!--Пример ссылки-->
13                      <UrlToCatch>http://CLIENT_DOMAIN/poffice__bookinfo?&amp;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).

См. также