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

Материал из Центр поддержки системы бронировании
Перейти к навигации Перейти к поиску
(Ответ с ошибкой)
Строка 3: Строка 3:
 
Это сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов.
 
Это сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов.
  
Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю.  Это можно сделать в разделе '''«Администрирование»''' ⇨ '''«Веб-служба. Авторизация»'''.
+
Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю.  Это можно сделать в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)»<!--{{Menu|Настройки системы|Интеграция|Nemo 1.0 (SOAP API)}}-->.
  
 
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
 
После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.
 
  
 
== Фиксация оплаты внешним запросом ==
 
== Фиксация оплаты внешним запросом ==
  
Сервис предназначен для приема информации о получении оплаты и простановки статуса '''«Оплачено»''' для определенного заказа.
+
Сервис предназначен для приема информации о получении оплаты и простановки статуса «Оплачено» для определенного заказа.
  
 
Сервис вызывается следующим образом: http://CLIENT_DOMAIN/index.php?go=payment/bill  
 
Сервис вызывается следующим образом: http://CLIENT_DOMAIN/index.php?go=payment/bill  
  
'''Подпись запроса'''
+
=== Подпись запроса ===
  
Подпись sig сверяется c md5($booking_id.$secret)
+
Подпись <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>
  
$booking_id - Id заказа в системе Nemo,
+
<syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">$booking_id</syntaxhighlight> — ID заказа в системе {{NameSystem}},
  
$secret - значение настройки в разделе '''«Администрирование»''' ⇨ '''«Настройки агентства»''' ⇨ '''''«Ключ безопасности для сервиса выставления оплаты и получения XML выгрузки»'''''
+
<syntaxhighlight lang="text" enclose="none" style="font-size: 1.2em; padding: 0 3px; background: #F0F0F0; border: 1px dashed #2F6FAB;">$secret</syntaxhighlight> — значение настройки в разделе «Управление сайтом» → «Домены и протоколы» в поле {{Setting|Ключ безопасности для сервиса выставления оплаты и получения XML выгрузки}}.
  
 
'''Пример:'''
 
'''Пример:'''
Строка 39: Строка 38:
  
 
Дополнительная информация в статье [[Интеграция]]
 
Дополнительная информация в статье [[Интеграция]]
 
  
 
==  Получение списка доступных способов оплаты ==
 
==  Получение списка доступных способов оплаты ==
 
  
 
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 забронированного заказа, который необходимо оплатить.  
+
Для получения результата необходим параметр — «OrderId» — ID забронированного заказа, который необходимо оплатить.  
  
 
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ.
 
Данный запрос позволяет получить список платёжных шлюзов, через которые есть возможность оплатить указанный заказ.
Строка 78: Строка 75:
 
             <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-->  
Строка 238: Строка 235:
 
         <Request>
 
         <Request>
 
           <OrderId>?</OrderId>
 
           <OrderId>?</OrderId>
           <!--OrderId — Id забронированного заказа в системе Nemo. Обязательный параметр-->
+
           <!--OrderId — ID забронированного заказа в системе {{NameSystem}}. Обязательный параметр-->
 
           <PaymentMethodId>?</PaymentMethodId>
 
           <PaymentMethodId>?</PaymentMethodId>
 
           <!--PaymentMethodId - ID данного способа оплаты, приходит в ответе на запрос PaymentInitialization response. Обязательный параметр-->
 
           <!--PaymentMethodId - ID данного способа оплаты, приходит в ответе на запрос PaymentInitialization response. Обязательный параметр-->
Строка 387: Строка 384:
  
 
== См. также ==
 
== См. также ==
 
+
* [[Агентский АПИ]]
*[[Агентский АПИ]]
+
* [[Agency API. Payments]]
 
 
*[[Agency API. Payments]]
 

Версия 19:21, 8 апреля 2016

Подключение

Это сервис внутри Nemo, который предназначен для выполнения различных операций, относящихся к оплате заказов.

Для подключения к данной веб-службе необходимо открыть доступ нужному пользователю. Это можно сделать в разделе «Настройки системы» → «Интеграция» → «Nemo 1.0 (SOAP API)».

После добавления пользователя, ему будут присвоены Номер (ClientId) и API ключ клиента, которые нужно использовать для подключения.

Фиксация оплаты внешним запросом

Сервис предназначен для приема информации о получении оплаты и простановки статуса «Оплачено» для определенного заказа.

Сервис вызывается следующим образом: http://CLIENT_DOMAIN/index.php?go=payment/bill

Подпись запроса

Подпись sig сверяется c md5($booking_id.$secret)

$booking_id — ID заказа в системе Nemo.Travel,

$secret — значение настройки в разделе «Управление сайтом» → «Домены и протоколы» в поле Ключ безопасности для сервиса выставления оплаты и получения XML выгрузки.

Пример:

Если

booking_id: 263330
ключ безопасности: 12345

То

sig=md5(26333012345) = a439a4492131f4b866ed1a17d018d3a6

Для фиксации оплаты получается такая ссылка: http://CLIENT_DOMAIN/index.php?go=payment/bill&booking_id=263330&sig=a439a4492131f4b866ed1a17d018d3a6

Дополнительная информация в статье Интеграция

Получение списка доступных способов оплаты

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>

См. также