Использование функций или функциональности системы описанных в wsdl, но не описанных в настоящем документе не допустимо.
Запрос регистрации заказа называется registerOrder
, он описан в WSDL сервиса (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
merchantOrderNumber | ANS..32 | да | Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы | ||||||||||||
description | ANS..512 | нет | Описание заказа в свободной форме | ||||||||||||
amount | N..20 | да | Сумма платежа в минимальных единицах валюты | ||||||||||||
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли). | ||||||||||||
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. | ||||||||||||
pageView | ANS..20 | нет |
По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP. |
||||||||||||
sessionTimeoutSecs | N...9 | нет | Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. | ||||||||||||
bindingId | AN..255 | no | Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: 1. Данный заказ может быть оплачен только с помощью связки; 2. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC. | ||||||||||||
expirationDate | ANS | нет | Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss. Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs . | ||||||||||||
returnUrl | AN..512 | да | Адрес, на который надо перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца> .
|
||||||||||||
failUrl | AN..512 | нет | Адрес, на который надо перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца> .
|
||||||||||||
params | - | нет |
Тэг с атрибутами для передачи дополнительных параметров мерчанта.
Поля дополнительной информации для последующего хранения. Для передачи N параметров, в запросе должно находиться N тэгов params, где атрибут name содержит название, а атрибут value содержит значение:
Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах. Включение данного функционала возможно по согласованию с банком в период интеграции. |
||||||||||||
clientId | AN..255 | нет |
Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.
|
||||||||||||
merchantLogin | AN..255 | нет | Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре. | ||||||||||||
features | ANS..255 | нет |
Контейнер для параметра feature, в котором возможно передать следующие значения:
|
По умолчанию в процессинг банка передаются поля:
Передаваемые в процессинг поля должны быть не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n.
Если в заказе передать дополнительный параметр с именем merchantOrderId, то именно его значение будет передано в процессинг в качестве номера заказа (вместо значения поля orderNumber).
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | нет | Номер заказа в платёжной системе. Уникален в пределах системы. Отсутствует, если регистрация заказа на удалась по причине ошибки, детализированной в errorCode. |
formUrl | AN..512 | нет | URL платёжной формы, на который надо перенаправить браузер клиента. Не возвращается, если регистрация заказа не удалась по причине ошибки, детализированной в errorCode. |
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре language в запросе. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Неверный номер заказа |
1 | Заказ с таким номером уже обработан |
3 | Неизвестная валюта |
4 | Отсутствует сумма |
4 | Номер заказа не может быть пуст |
4 | URL возврата не может быть пуст |
5 | Неверно значение одного из параметров |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
13 | Использование обоих значений Features FORCETDS/FORCESSL и AUTO_PAYMENT недопустимо |
13 | Мерчант не имеет привилегии выполнять AUTO платежи |
13 | Мерчант не имеет привилегии выполнять проверочные платежи |
14 | Features указаны некорректно |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:registerOrder>
<order merchantOrderNumber="78ds901234567890" description=" " amount="15000" currency=" " language=" " pageView="MOBILE" sessionTimeoutSecs=" " bindingId=" " expirationDate="2014-09-08T14:14:14">
<returnUrl>https://alfa.rbsuat.com/payment/merchants/ecom2/finish.html</returnUrl>
<params name="param1" value="valueParam1"/>
<params name="param2" value="valueParam2"/>
<clientId>666</clientId>
<merchantLogin> </merchantLogin>
<features>
<feature>AUTO_PAYMENT</feature>
</features>
</order>
</mer:registerOrder>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:registerOrderResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return orderId="05fcbc62-7ee6-4f1a-b3d5-6ca41a982283" errorCode="0" errorMessage="Успешно">
<formUrl> https://alfa.rbsuat.com/payment/merchants/ecom2/mobile_payment_ru.html?mdOrder=05fcbc62-7ee6-4f1a-b3d5-6ca41a982283 </formUrl>
</return>
</ns1:registerOrderResponse>
Запрос предавторизации заказа называется registerOrderPreAuth (см. раздел Координаты подключения). Он используется для регистрации заказа в случае двухстадийной схемы оплаты.
Параметры запроса:
Название | Тип | Обязательно | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
merchantOrderNumber | ANS..32 | да | Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы | ||||||||||||
description | ANS..512 | нет | Описание заказа в свободной форме | ||||||||||||
amount | N..20 | да | Сумма платежа в копейках (или центах) | ||||||||||||
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию. | ||||||||||||
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language). | ||||||||||||
pageView | ANS..20 | нет |
По значению данного параметра определяется, какие страницы платёжного интерфейса должны загружаться для клиента. Возможные значения:
Если параметр отсутствует, либо не соответствует формату, то по умолчанию считается pageView=DESKTOP. |
||||||||||||
sessionTimeoutSecs | N...9 | нет | Продолжительность жизни заказа в секундах. В случае если параметр не задан, будет использовано значение, указанное в настройках мерчанта или время по умолчанию (1200 секунд = 20 минут). Если в запросе присутствует параметр expirationDate, то значение параметра sessionTimeoutSecs не учитывается. | ||||||||||||
bindingId | AN..255 | no | Идентификатор связки, созданной ранее. Может использоваться, только если у магазина есть разрешение на работу со связками. Если этот параметр передаётся в данном запросе, то это означает: 1. Данный заказ может быть оплачен только с помощью связки; 2. Плательщик будет перенаправлен на платёжную страницу, где требуется только ввод CVC. | ||||||||||||
expirationDate | ANS | нет | Дата и время окончания жизни заказа. Формат: yyyy-MM-dd'T'HH:mm:ss. Если этот параметр не передаётся в запросе, то для определения времени окончания жизни заказа используется sessionTimeoutSecs . | ||||||||||||
returnUrl | AN..512 | да | Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца> .
|
||||||||||||
failUrl | AN..512 | нет | Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес_платёжного_шлюза>/<адрес_продавца> .
|
||||||||||||
params | - | нет |
Тэг с атрибутами для передачи дополнительных параметров мерчанта.
Поля дополнительной информации для последующего хранения. Для передачи N параметров, в запросе должно находиться N тэгов params, где атрибут name содержит название, а атрибут value содержит значение:
Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах. Включение данного функционала возможно по согласованию с банком в период интеграции. |
||||||||||||
clientId | AN..255 | нет |
Номер (идентификатор) клиента в системе магазина. Используется для реализации функционала связок. Может присутствовать, если магазину разрешено создание связок.
|
||||||||||||
merchantLogin | AN..255 | нет | Чтобы зарегистрировать заказ от имени дочернего мерчанта, укажите его логин в этом параметре. | ||||||||||||
features | ANS..255 | нет |
Контейнер для параметра feature, в котором возможно передать следующие значения:
|
По умолчанию в процессинг банка передаются поля:
Передаваемые в процессинг поля должны быть не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n.
Если в заказе передать дополнительный параметр с именем merchantOrderId, то именно его значение будет передано в процессинг в качестве номера заказа (вместо значения поля orderNumber).
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | нет | Номер заказа в платёжной системе. Уникален в пределах системы. Отсутствует, если регистрация заказа на удалась по причине ошибки, детализированной в errorCode. |
formUrl | AN..512 | нет | URL платёжной формы, на который надо перенаправить браузер клиента. Не возвращается, если регистрация заказа не удалась по причине ошибки, детализированной в errorCode. |
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре language в запросе. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Неверный номер заказа |
1 | Заказ с таким номером уже обработан |
3 | Неизвестная валюта |
4 | Отсутствует сумма |
4 | Номер заказа не может быть пуст |
4 | URL возврата не может быть пуст |
5 | Платежи с предавторизацией не разрешены |
5 | Неверно указано значение одного из параметров |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
13 | Использование обоих значений Features FORCETDS/FORCESSL и AUTO_PAYMENT недопустимо |
13 | Мерчант не имеет привилегии выполнять AUTO платежи |
13 | Мерчант не имеет привилегии выполнять проверочные платежи |
14 | Features указаны некорректно |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:registerOrderPreAuth>
<order merchantOrderNumber="asuaakdfadsfasdfasdd5" description=" " amount="10000" currency=" " language="ru" pageView="DESKTOP" bindingId=" " sessionTimeoutSecs=" ">
<returnUrl>https://alfa.rbsuat.com/payment/merchants/ecom2/finish.html</returnUrl>
<params name="param1" value="paramValue1"/>
<params name="param2" value="paramValue2"/>
<clientId>7777</clientId>
<merchantLogin> </merchantLogin>
<features>
<feature>AUTO_PAYMENT</feature>
</features>
</order>
</mer:registerOrderPreAuth>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:registerOrderPreAuthResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return orderId="5e5dc6bd-dee3-4c96-849a-09f3f575f4b6" errorCode="0" errorMessage="Успешно">
<formUrl> https://alfa.rbsuat.com/payment/merchants/ecom2/payment_ru.html?mdOrder=5e5dc6bd-dee3-4c96-849a-09f3f575f4b6 </formUrl>
</return>
Для запроса списания ранее предавторизованного заказа используется запрос depositOrder (см. раздел Координаты подключения). Данную операцию можно осуществлять, если есть соответствующие права в системе.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
depositAmount | N..5 | да | Сумма списания в валюте заказа. Может быть меньше или равна сумме преавторизации. Не может быть меньше 1 рубля. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке. |
Внимание!!!
Если не указать параметр "depositAmount", завершение произойдёт на всю предавторизованную сумму.
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре Language в запросе. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Сумма депозита превышает захолдированную сумму |
5 | Сумма депозита должна быть больше нуля или не менее одного рубля |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
6 | Неверный номер заказа |
6 | orderId не задан |
7 | Платёж должен быть в корректном состоянии |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:depositOrder>
<order language="ru" orderId="4302d369-a5e8-4432-a5e5-42acfab52c86" depositAmount="30000">
<!- Zero or more repetitions: ->
<params name="?" value="?"/>
</order>
</mer:depositOrder>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:depositOrderResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="6" errorMessage="Неверный номер заказа"/>
</ns1:depositOrderResponse>
</soap:Body>
</soap:Envelope>
Для запроса состояния зарегистрированного заказа используется запрос getOrderStatus (см. раздел Координаты подключения).
Cтатус заказа необходимо определять по значению параметра orderStatus. Поле authCode является устаревшим.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderStatus | N2 | нет | По значению этого параметра определяется состояние заказа в платёжной системе. Список возможных значений приведён в таблице ниже. Отсутствует, если заказ не был найден. |
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре Language в запросе. |
orderNumber | AN..32 | да | Номер (идентификатор) заказа в системе магазина |
pan | N..19 | нет | Маскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа. |
expiration | N6 | нет | Срок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа. |
cardholderName | A..64 | нет | Имя держателя карты. Указан только после оплаты заказа. |
amount | N..20 | да | Сумма платежа в копейках (или центах) |
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли). |
approvalCode | AN6 | нет | Код авторизации МПС. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. |
authCode | N3 | нет | Это поле является устаревшим. Его значение всегда равно "2", независимо от состояния заказа и кода авторизации процессинговой системы. |
ip | NS..15 | нет | IP адрес пользователя, который оплачивал заказ |
date | ANS | да | Дата регистрации заказа |
orderDesctiption | AN..512 | да | Описание заказа, переданное при его регистрации |
actionCodeDesctiption | AN..512 | да | Расшифровка кода ответа на языке, переданном в параметре language в запросе. |
clientId | AN..255 | нет | Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок. |
bindingId | AN..255 | нет | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
Поле orderStatus может принимать следующие значения:
Номер состояния | Описание |
---|---|
0 | Заказ зарегистрирован, но не оплачен |
1 | Предавторизованная сумма захолдирована (для двухстадийных платежей) |
2 | Проведена полная авторизация суммы заказа |
3 | Авторизация отменена |
4 | По транзакции была проведена операция возврата |
5 | Инициирована авторизация через ACS банка-эмитента |
6 | Авторизация отклонена |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
2 | Платёж отклонён |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | orderId не указан |
6 | Неизвестный номер заказа |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:getOrderStatus>
<order orderId="b1221b79-5703-42c9-a4b1-ed0d0f36493e" language="ru"/>
</mer:getOrderStatus>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getOrderStatusResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return orderStatus="2" errorCode="0" orderNumber="456789012345678" pan="411111**1111" expiration="201512" cardholderName="Ivan" amount="15000" currency="810" approvalCode="123456" uthCode="2" ip="212.5.125.194" date="2013-09-03T16:48:52.459+04:00" orderDescription=" " actionCodeDescription="Запрос успешно обработан" clientId="666" bindingId="df0b1801-a754-4576-b174-c2485d98bc9b"/>
</ns1:getOrderStatusResponse>
</soap:Body>
</soap:Envelope>
Для запроса состояния зарегистрированного заказа используется запрос getOrderStatusExtended (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да* | Номер заказа в платёжной системе. Уникален в пределах системы |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке. |
merchantOrderNumber | ANS..32 | да* | Номер (идентификатор) заказа в системе магазина. |
В запросе необходимо передать или параметр orderId, или merchantOrderNumber. Если в запросе передаются оба параметра, приоритет orderId выше.
Существует несколько наборов параметров ответа. Какие именно наборы параметров будут возвращены, завит от версии getOrderStatusExtended, указанной в настройках продавца.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
orderNumber | AN..32 | да | Номер (идентификатор) заказа в системе магазина. | Все версии. |
orderStatus | N2 | нет |
По значению этого параметра определяется состояние заказа в платёжной системе. Список возможных значений:
Отсутствует, если заказ не был найден. |
Все версии. |
actionCode | N3 | да | Код ответа. | Все версии. |
actionCodeDescription | AN..512 | да | Расшифровка кода ответа на языке, переданном в параметре language в запросе. | Все версии. |
errorCode | N3 | нет |
Код ошибки. Возможны следующие варианты:
|
Все версии. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре language в запросе. | Все версии. |
amount | N..20 | да | Сумма платежа в копейках (или центах) | Все версии. |
currency | N3 | нет | Код валюты платежа ISO 4217. Если не указан, считается равным 810 (российские рубли). | Все версии. |
date | ANS | да | Дата регистрации заказа. | Все версии. |
orderDescription | AN..512 | нет | Описание заказа, переданное при его регистрации | Все версии. |
ip | AN..20 | да | IP-адрес покупателя. | Все версии. |
Элемент merchantOrderParams – присутствует в ответе, если в заказе содержатся дополнительные параметры продавца. Каждый дополнительный параметр заказа представлен в отдельном элементе merchantOrderParams.
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
name | AN..20 | нет | Название дополнительного параметра | Все версии. |
value | AN..1024 | нет | Значение дополнительного параметра | Все версии. |
Элемент cardAuthInfo – в элементе лежит структура, состоящая из списка элемента secureAuthInfo и следующих параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
maskedPan | N..19 | нет | Маскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа. | Все версии. |
expiration | N6 | нет | Срок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа. | Все версии. |
cardholderName | A..64 | нет | Имя держателя карты. Указан только после оплаты заказа. | Все версии. |
approvalCode | AN6 | нет | Код авторизации платежа. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. Указан только после оплаты заказа. | Все версии. |
chargeback | A..5 | нет | Были ли средства принудительно возвращены покупателю банком. Возможны следующие значения: true (истина), false (ложь). | 06 и выше. |
paymentSystem | N..10 | да | Наименование платёжной системы. Доступны следующие варианты: VISA, MASTERCARD, AMEX, JCB, CUP, MIR. | 08 и выше. |
product | AN..255 | да | Дополнительные сведения о корпоративных картах. Эти сведения заполняются службой технической поддержки в консоли управления. Если такие сведения отсутствуют, возвращается пустое значение. | 08 и выше. |
paymentWay | AS..14 | да | Способ совершения платежа (платёж в с вводом карточных данных, оплата по связке и т. п.). | 09 и выше. |
Элемент secureAuthInfo (элемент состоит из элемента eci и элемента threeDSInfo, являющимся списком параметров cavv и xid):
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
eci | N..4 | нет | Электронный коммерческий индикатор. Указан только после оплаты заказа и в случае соответствующего разрешения. | Все версии. |
cavv | ANS..200 | нет | Значение проверки аутентификации владельца карты. Указан только после оплаты заказа и в случае соответствующего разрешения. | Все версии. |
xid | ANS..80 | нет | Электронный коммерческий идентификатор транзакции. Указан только после оплаты заказа и в случае соответствующего разрешения. | Все версии. |
Элемент bindingInfo состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
clientId | AN..255 | нет | Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок. | Все версии. |
bindingId | AN..255 | нет | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. | Все версии. |
authDateTime | ANS | нет | Дата/время авторизации. | 02 и выше. |
authRefNum | AN..24 | нет | Reference number. | 02 и выше. |
terminalId | AN..10 | нет | Id терминала. | 02 и выше. |
Элемент paymentAmountInfo состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
approvedAmount | N..20 | нет | Сумма, захолдированная на карте (используется только при двухстадийных платежах). | 03 и выше. |
depositedAmount | N..20 | нет | Сумма, подтверждённая для списания с карты. | 03 и выше. |
refundedAmount | N..20 | нет | Сумма возврата. | 03 и выше. |
paymentState | A..10 | нет | Состояние заказа. | 03 и выше. |
feeAmount | N..20 | нет | Сумма комиссии. | 11 и выше. |
Элемент bankInfo состоит из параметров:
Название | Тип | Обязательно | Описание | Версия getOrderStatusExtended |
---|---|---|---|---|
bankName | AN..200 | нет | Наименование банка-эмитента. | 03 и выше. |
bankCountryCode | AN..4 | нет | Код страны банка-эмитента. | 03 и выше. |
bankCountryName | AN..160 | нет | Наименование страны банка-эмитента на языке, переданном в параметре language в запросе, или на языке пользователя, вызвавшего метод, если язык в запросе не указан. | 03 и выше. |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:getOrderStatusExtended>
<order orderId="942e8534-ac73-4e3c-96c6-f6cc448018f7" language="ru">
<!--Optional:-->
<merchantOrderNumber> </merchantOrderNumber>
</order>
</mer:getOrderStatusExtended>
</soapenv:Body>
</soapenv:Envelope >
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getOrderStatusExtendedResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return orderNumber="00000123" orderStatus="2" actionCode="0" actionCodeDescription="" amount="10000" currency="810" date="2016-12-20T18:48:49.590+03:00" ip="10.7.5.21" errorCode="0" errorMessage="Успешно">
<attributes name="mdOrder" value="08c87ec5-399d-49d0-85ed-85c94bb26675"/>
<cardAuthInfo maskedPan="555555**5599" expiration="201912" cardholderName="asd asd" approvalCode="123456" paymentSystem="MASTERCARD" product="DEBIT">
<secureAuthInfo>
<eci>1</eci>
</secureAuthInfo>
</cardAuthInfo>
<authDateTime>2016-12-20T18:52:16.276+03:00</authDateTime>
<terminalId>000001</terminalId>
<authRefNum>111111111111</authRefNum>
<paymentAmountInfo paymentState="DEPOSITED" approvedAmount="10000" depositedAmount="10000" refundedAmount="0"/>
<bankInfo bankName="Unated State Bank of Atlanta" bankCountryCode="US" bankCountryName="Соединенные Штаты Америки"/>
<chargeback>false</chargeback>
<paymentWay>CARD</paymentWay>
</return>
</ns1:getOrderStatusExtendedResponse>
</soap:Body>
</soap:Envelope>
Для запроса отмены заказа используется запрос reverseOrder (см. раздел Координаты подключения). Функция отмены доступна в течение ограниченного времени после оплаты, точные сроки необходимо уточнять в Банке.
Операция отмены оплаты может быть совершена только один раз. Если она закончится ошибкой, то повторная операция отмены платежа не пройдёт.
Данная функция доступна магазинам по согласованию с Банком. Для выполнения операции отмены пользователь должен обладать соответствующими правами.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре Language в запросе. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Доступ запрещён |
5 | Пользователь должен изменить свой пароль |
5 | orderId не задан |
6 | Неверный номер заказа |
7 | Недопустимая операция для текущего состояния заказа |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:reverseOrder>
<order language="ru" orderId="f88a2bbf-2021-4ccc-8783-8a13068a89f9">
<!- Zero or more repetitions: ->
<params name=" " value=" "/>
</order>
</mer:reverseOrder>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:reverseOrderResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="7" errorMessage="Недопустимая операция для текущего состояния заказа"/>
</ns1:reverseOrderResponse>
</soap:Body>
</soap:Envelope>
Для возврата средств используется запрос refundOrder (см. раздел Координаты подключения).
По этому запросу средства по указанному заказу будут возвращены плательщику. Запрос закончится ошибкой в случае, если средства по этому заказу не были списаны. Система позволяет возвращать средства более одного раза, но в общей сложности не более первоначальной суммы списания.
Для выполнения операции возврата необходимо наличие соответствующих права в системе.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
refundAmount | N..5 | да | Сумма возврата в валюте заказа. Может быть меньше или равна остатку в заказе. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки на языке, переданном в параметре Language в запросе. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Доступ запрещён |
5 | Пользователь должен изменить свой пароль |
5 | orderId не задан |
5 | Неверная сумма |
6 | Неверный номер заказа |
7 | Платёж должен быть в корректном состоянии |
7 | Сумма возврата превышает сумму списания |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:refundOrder>
<order language="ru" orderId="4302d369-a5e8-4432-a5e5-42acfab52c86" refundAmount="20000">
<!--Zero or more repetitions:-->
<params name=" " value=" "/>
</order>
</mer:refundOrder>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:refundOrderResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="7" errorMessage="Сумма возврата превышает сумму списания"/>
</ns1:refundOrderResponse>
</soap:Body>
</soap:Envelope>
Для проверки вовлечённости карты в 3DS используется запрос verifyEnrollment (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
pan | N12...19 | да | Номер карты |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | нет | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки. |
isEnrolled | A1 | нет | Признак вовлечённости карты в 3DS. Возможные значения: Y, N, U. |
emitterName | AN..160 | нет | Наименование банка-эмитента. |
emitterCountryCode | AN..4 | нет | Код страны банка-эмитента. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Не указан номер карты |
1 | Номер карты должен быть числом, содержащим от 13 до 19 цифр |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
6 | По заданному номеру карты информация не найдена |
7 | Произошла системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:verifyEnrollment>
<pan>4111111111111111</pan>
</mer:verifyEnrollment>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:verifyEnrollmentResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return isEnrolled="Y" emitterName="TEST CARD" emitterCountryCode="RU" errorCode="0"/>
</ns1:verifyEnrollmentResponse>
</soap:Body>
</soap:Envelope>
Для добавления к заказу новых дополнительных параметров используется метод addParams (см. раздел Координаты подключения).
Если в заказе уже существует дополнительный параметр, то при добавлении параметра с тем же именем в заказе сохранится последнее переданное значение.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
params | - | да | Тэг с атрибутами для передачи дополнительных параметров мерчанта. |
Тэг params содержит поля дополнительной информации для последующего хранения. Для передачи N параметров, в запросе должно находиться N тэгов params, где атрибут name содержит название, а атрибут value содержит значение:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | AN..20 | да | Название дополнительного параметра |
value | AN..1024 | да | Значение дополнительного параметра |
Параметры ответа
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N3 | да | Код ошибки. |
errorMessage | AN..512 | нет | Описание ошибки. Отсутствует при успешном выполнении запроса. |
Коды ошибок (поле ErrorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
6 | Не указан orderId |
6 | Неверный номер заказа |
7 | Произошла системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:addParams>
<request orderId="02988563-0cc4-4109-84ed-15781f0d718e">
<!--Zero or more repetitions:-->
<params name="Param1" value="Param1"/>
<params name="Param2" value="Param2"/>
</request>
</mer:addParams>
</soapenv:Body>
</soapenv:Envelope>
```html
**Пример ответа:**
```html
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:addParamsResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0"/>
</ns1:addParamsResponse>
</soap:Body>
</soap:Envelope>
Получить статистику по платежам за определённый период можно с использованием метода getLastOrdersForMerchants (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, что язык – русский. Сообщение ошибке будет возвращено именно на этом языке. |
page | N | нет | При обработке запроса будет сформирован список, разбитый на страницы (с количеством записей size на одной странице). В ответе возвращается страница под номером, указанным в параметре page. Нумерация страниц начинается с 0. Если параметр не указан, будет возвращена страница под номером 0. |
size | N..3 | да | Количество элементов на странице (максимальное значение = 200). |
from | ANS | да | Дата и время начала периода для выборки заказов в формате YYYY-MM-DDTHH:mm:ss. |
to | ANS | да | Дата и время окончания периода для выборки заказов в формате YYYY-MM-DDTHH:mm:ss. |
transactionStates | A..9 | да | В этом блоке необходимо перечислить требуемые состояния заказов. Только заказы, находящиеся в одном из указанных состояний, попадут в отчёт. Возможные значения: CREATED, APPROVED, DEPOSITED, DECLINED, REVERSED, REFUNDED. |
merchants | ANS | да | Список Логинов мерчантов, чьи транзакции должны попасть в отчёт. Оставьте этот блок пустым, чтобы получить список отчётов по всем доступным мерчантам (дочерним мерчантам и мерчантам, указанным в настройках пользователя). |
searchByCreatedDate | A..5 | нет | Возможные значения: · true – поиск заказов, дата создания которых попадает в заданный период. · false – поиск заказов, дата оплаты которых попадает в заданный период (таким образом, в отчёте не могут присутствовать заказы в статусе CREATED и DECLINED). Значение по умолчанию – false. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N..2 | да | Код ошибки. Описание возможных кодов представлено ниже в таблице "Коды ошибок (поле errorCode)" |
errorMessage | AN..512 | нет | Описание ошибки. Присутствует только при наличии ошибки (errorCode не равно 0). |
orderStatuses | - | - | Блоки, содержащие информацию о заказах, попавших в отчёт. См. ниже таблицу "Параметры блока orderStatuses". |
totalCount | N | да | Общее количество элементов во отчёте (на всех страницах). |
page | N | да | Номер текущей страницы (равный номеру страницы, переданному в запросе). |
pageSize | N..3 | да | Максимальное количество записей на странице (равно размеру страницы, переданному в запросе). |
Параметры блока orderStatuses:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderNumber | AN..32 | да | Номер (идентификатор) заказа в системе магазина. |
orderStatus | N..2 | да | Состояние заказа в платёжной системе. Возможные значения представлены ниже в таблице "Поле orderStatus:". |
actionCode | N..3 | да | Код ответа. |
actionCodeDescription | AN..512 | да | Расшифровка кода ответа. |
amount | N..20 | да | Сумма платежа в минимальных единицах валюты. |
currency | N3 | да | Код валюты платежа ISO 4217. Если не указан, считается равным валюте по умолчанию. |
date | ANS | да | Дата регистрации заказа. |
orderDescription | AN..512 | нет | Описание заказа, переданное при его регистрации |
ip | AN..20 | нет | IP адрес покупателя. Указан только после оплаты. |
errorCode | N..2 | да | Код ошибки. |
merchantOrderParams | - | нет | Тэг с атрибутами, в которых передаются дополнительные параметры мерчанта. См. ниже таблицу "Параметры блока merchantOrderParams". |
attributes | - | да | Атрибуты заказа в платёжной системе (номер заказа). См. ниже таблицу "Параметры блока attributes". |
cardAuthInfo | - | нет | Тэг с атрибутами платежа. См. ниже таблицу "Параметры блока cardAuthInfo". |
bindingInfo | - | нет | Тэг с информацией о связке, с помощью которой осуществлена оплата. См. ниже таблицу "Параметры блока bindingInfo". |
authDateTime | ANS | нет | Дата/время авторизации |
terminalId | AN..10 | нет | Id терминала |
authRefNum | AN..24 | нет | Reference number |
paymentAmountInfo | - | нет | Тэг с информацией о суммах подтверждения, списания, возврата. См. ниже таблицу "Параметры блока paymentAmountInfo". |
bankInfo | - | нет | Тэг с информацией о Банке-эмитенте. См. ниже таблицу "Параметры блока bankInfo". |
Параметры блока merchantOrderParams:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | AN..20 | да | Название дополнительного параметра мерчанта |
value | AN..1024 | да | Значение дополнительного параметра мерчанта |
Параметры блока attributes:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | A7 | да | Название атрибута - "mdOrder". |
value | ANS36 | да | Значение атрибута - номер заказа в платёжной системе (уникален в пределах системы). |
Параметры блока cardAuthInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
maskedPan | N..19 | нет | Маскированный номер карты, которая использовалась для оплаты. |
expiration | N6 | нет | Срок истечения действия карты в формате YYYYMM. |
cardholderName | A..64 | нет | Имя держателя карты. |
approvalCode | AN6 | нет | Код авторизации платежа. Поле фиксированной длины (6 символов), может содержать цифры и латинские буквы. |
Параметры блока bindingInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
clientId | AN..255 | нет | Номер (идентификатор) клиента в системе магазина. |
bindingId | AN..255 | нет | Идентификатор связки, использованной для оплаты. |
Параметры блока paymentAmountInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
paymentState | N..9 | нет | Состояние платежа |
approvedAmount | N..20 | нет | Сумма, подтверждённая к списанию. |
depositedAmount | N..20 | нет | Сумма списания с карты. |
refundedAmount | N..20 | нет | Сумма возврата. |
Параметры блока bankInfo:
Название | Тип | Обязательно | Описание |
---|---|---|---|
bankName | AN..200 | нет | Наименование Банка-эмитента. |
bankCountryCode | AN..4 | нет | Код страны Банка-эмитента |
bankCountryName | AN..160 | нет | Наименование страны банка-эмитента на языке, переданном в параметре language в запросе, или на языке пользователя, вызвавшего метод, если язык в запросе не указан. |
Поле orderStatus может принимать следующие значения:
Значение | Описание |
---|---|
0 | Заказ зарегистрирован, но не оплачен |
1 | Предавторизованная сумма захолдирована (для двухстадийных платежей) |
2 | Проведена полная авторизация суммы заказа |
3 | Авторизация отменена |
4 | По транзакции была проведена операция возврата |
5 | Инициирована авторизация через ACS банка-эмитента |
6 | Авторизация отклонена |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
5 | Не заполнено одно из обязательных полей |
5 | Неверный формат параметра transactionStates |
7 | Системная ошибка |
10 | Значение параметра size превышает максимально допустимое |
10 | Недостаточно прав для просмотра транзакций указанного мерчанта |
Пример запроса:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:getLastOrdersForMerchants>
<request language="ru">
<page>0</page>
<size>200</size>
<from>2014-10-10T00:00:00</from>
<to>2014-11-11T00:00:00</to>
<transactionStates>
<transactionStates>DEPOSITED</transactionStates>
<transactionStates>REVERSED</transactionStates>
</transactionStates>
<merchants>
<merchants>SevenEightNine</merchants>
</merchants>
<searchByCreatedDate>false</searchByCreatedDate>
</request>
</mer:getLastOrdersForMerchants>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getLastOrdersForMerchantsResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0">
<orderStatuses orderNumber="58drs0Pes459Hdsddd0567a0" orderStatus="2" actionCode="0" actionCodeDescription="Запрос успешно обработан" amount="250000" currency="810" date="2014-10-28T12:40:49.233+04:00" orderDescription="Opisanie" ip="212.5.125.194" errorCode="0">
<merchantOrderParams name="registr1" value="registr1"/>
<attributes name="mdOrder" value="f1a3365b-542c-4c8d-b34c-e9a7ee8dbc9c"/>
<cardAuthInfo maskedPan="411111**1111" expiration="201512" cardholderName="Ivan" approvalCode="123456"/>
<bindingInfo clientId="666" bindingId="1eabfb8e-b90e-4dc8-bef6-14bd392b1cec"/>
<authDateTime>2014-10-28T12:41:01.207+04:00</authDateTime>
<terminalId>111113</terminalId>
<authRefNum>111111111111</authRefNum>
<paymentAmountInfo paymentState="DEPOSITED" approvedAmount="250000" depositedAmount="250000" refundedAmount="0"/>
<bankInfo bankName="TEST CARD" bankCountryCode="RU" bankCountryName="Россия"/>
</orderStatuses>
<orderStatuses orderNumber="57drs0Pes459Hdsddd0567a0" orderStatus="2" actionCode="0" actionCodeDescription="Запрос успешно обработан" amount="250000" currency="810" date="2014-10-28T12:34:37.286+04:00" orderDescription="Opisanie" ip="212.5.125.194" errorCode="0">
<merchantOrderParams name="registr1" value="registr1"/>
<attributes name="mdOrder" value="09489184-bc5e-44a7-b6c4-3ca1feb8ef69"/>
<cardAuthInfo maskedPan="411111**1111" expiration="201512" cardholderName="Ivan" approvalCode="123456"/>
<bindingInfo clientId="666" bindingId="1eabfb8e-b90e-4dc8-bef6-14bd392b1cec"/>
<authDateTime>2014-10-28T12:34:56.046+04:00</authDateTime>
<terminalId>111113</terminalId>
<authRefNum>111111111111</authRefNum>
<paymentAmountInfo paymentState="DEPOSITED" approvedAmount="250000" depositedAmount="250000" refundedAmount="0"/>
<bankInfo bankName="TEST CARD" bankCountryCode="RU" bankCountryName="Россия"/>
</orderStatuses>
<totalCount>2</totalCount>
<page>0</page>
<pageSize>200</pageSize>
</return>
</ns1:getLastOrdersForMerchantsResponse>
</soap:Body>
</soap:Envelope>
Для оплаты заказа через внешнюю платёжную систему используется запрос paymentOrderOtherWay (см. раздел Координаты подключения) со специальными параметрами.
Данная операция доступна при наличии соответствующих прав в системе.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
orderId | ANS36 | да | Номер заказа, полученный при регистрации заказа |
paymentWay | ANS..* | да | В этом параметре передаётся способ оплаты. Возможные значения: ALFA_ALFACLICK – для оплаты с помощью "Альфа-Клик" (через систему PayByClik); UPOP – для оплаты через систему UPOP, доступно для держателей карт China UnionPay. |
ip | AS..15 | нет | IP адрес плательщика |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language) |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код ошибки |
errorMessage | ANS..* | (при ошибке) | Сообщение об ошибке |
redirect | ANS..* | нет | Адрес возврата после оплаты |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | orderId не задан |
1 | paymentWay не задан |
2 | Заказ не найден |
5 | Таймаут сесси |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
5 | paymentWay неверен |
5 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:paymentOrderOtherWay>
<order language="ru" orderId="8232a33f-c44f-48ec-b52f-0d63a88c50ae" paymentWay="ALFA_ALFACLICK" ip=" "/>
</mer:paymentOrderOtherWay>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:paymentOrderOtherWayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return redirect="http://217.12.96.193/PayByClick/login.xhtml?orderId=4e6b383e-809d-4e7e-9477-956e9c828934&backUrl=http%3A%2F%2Fya.ru%3ForderId%3D4e6b383e-809d-4e7e-9477-956e9c828934" errorCode="0"/>
</ns1:paymentOrderOtherWayResponse>
</soap:Body>
</soap:Envelope>
Для проведения платежа по связкам используется запрос paymentOrderBinding (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
mdOrder | ANS36 | да | Номер заказа в платёжной системе. Уникален в пределах системы. |
bindingId | ANS36 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
params | - | нет | Дополнительный тэг с атрибутами для передачи дополнительных параметров мерчанта.* |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language) |
ip | NS..15 | да | ip адрес плательщика |
cvc | N4 | нет | Код CVC. Этот параметр обязателен, если для мерчанта не выбрано разрешение "Может проводить оплату без подтверждения CVC". |
ANS..* | нет | Email адрес плательщика | |
loyaltyId | ANS..* | нет | Идентификатор программы лояльности. Следует использовать значение sbrf_spasibo. |
pointsAmount | N..20 | нет | Количество бонусных баллов к списанию. |
Поля дополнительной информации для последующего хранения. Данные поля могут быть переданы в процессинг банка для последующего отображения в реестрах. Включение данной функциональности возможно по согласованию с банком в период интеграции. Для передачи N параметров, в запросе должно находиться N тэгов Params, где атрибут name содержит название, а атрибут value содержит значение:
Название | Тип | Обязательно | Описание |
---|---|---|---|
name | AN..20 | да | Название дополнительного параметра |
value | AN..1024 | да | Значение дополнительного параметра |
По умолчанию в процессинг банка передаются поля номер заказа orderNumber и его описание description (не более 99 символов, запрещены к использованию %, +,конец строки \r и перенос строки \n)
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
redirect | ANS..* | нет | При успешном ответе. В случае SSL-платежа – URL, на который производится переадресация после платежа. В случае 3DS-платежа – URL для возврата с ACS. |
info | ANS..* | нет |
При успешном ответе. Результат попытки оплаты. Возможные значения представлены ниже:
|
errorCode | N1 | да | Код завершения. |
errorMessage | ANS..* | нет | При ответе с ошибкой. Сообщение об ошибке. |
acsUrl | ANS..* | нет | При успешном ответе в случае 3DS-платежа. URL перехода на ACS |
paReq | ANS..* | нет | При успешном ответе в случае 3DS-платежа. Payment Authentication Request. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Необходимо указать CVC2/CVV2 код, поскольку у мерчанта нет разрешения на проведение платежа без CVC |
1 | Неверный формат CVC |
1 | mdOrder не задан |
1 | bindingId не задан |
1 | Адрес электронной почты не удовлетворяет шаблону |
1 | Неверный язык |
2 | Заказ не найден |
2 | Связка не найдена |
5 | Доступ запрещён |
5 | Пользователь должен изменить свой пароль |
5 | Исчерпаны попытки оплаты или закончилось время сессии |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:paymentOrderBinding>
<order mdOrder="9213bc5f-5d5b-43d6-a408-b6b93cdde992" bindingId="ca91a4ab-b6d4-495d-b606-8fb0114e679e" language="ru" ip="127.0.0.1" cvc="123" loyaltyId="sbrf_spasibo" pointsAmount="12000">
<!-Zero or more repetitions:->
<params name=" " value=" "/>
</order>
</mer:paymentOrderBinding>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:paymentOrderBindingResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0" info="Ваш платёж обработан, происходит переадресация..." redirect="http://example.ru?orderId=9213bc5f-5d5b-43d6-a408-b6b93cdde992"/"/>
</ns1:paymentOrderBindingResponse>
</soap:Body>
</soap:Envelope>
Для того, чтобы сделать существующую связку неактивной, используется запрос unBindCard (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
bindingId | ANS36 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения |
errorMessage | ANS..* | (при ошибке) | Сообщение об ошибке |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
2 | Неверное состояние связки (при попытке деактивировать неактивную связку) |
2 | Связка не найдена |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:unBindCard>
<bindingId>fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc</bindingId>
</mer:unBindCard>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:unBindCardResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0" errorMessage="Успешно"/>
</ns1:unBindCardResponse>
</soap:Body>
</soap:Envelope>
Для активации деактивированной ранее связки используется запрос bindCard (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
bindingId | ANS36 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения |
errorMessage | ANS..* | (при ошибке) | Сообщение об ошибке |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
2 | Неверное состояние связки (при попытке деактивировать неактивную связку) |
2 | Связка не найдена |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:bindCard>
<bindingId>fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc</bindingId>
</mer:bindCard>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:bindCardResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="5" errorMessage="Пользователь должен сменить свой пароль"/>
</ns1:bindCardResponse>
</soap:Body>
</soap:Envelope>
Для изменения срока действия связки используйте метод extendBinding (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
bindingId | ANS36 | да | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
newExpiry | N6 | да | Новая дата (год и месяц) окончания срока действия в формате YYYYMM |
language | А2 | нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию (default language) |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения |
errorMessage | ANS..* | (при ошибке) | Сообщение об ошибке |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Не указан или неверно указан один или несколько обязательных параметров |
2 | Связка не найдена |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:extendBinding>
<request language=" " bindingId="1eabfb8e-b90e-4dc8-bef6-14bd392b1cec" newExpiry="201807"/>
</mer:extendBinding>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:extendBindingResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0" errorMessage="Успешно"/>
</ns1:extendBindingResponse>
</soap:Body>
</soap:Envelope>
Для получения списка связок по идентификатору клиента используется запрос getBindings (см. раздел Координаты подключения).
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
clientId | AN..255 | да | Номер (идентификатор) клиента в системе магазина, переданный при регистрации заказа. Присутствует только если магазину разрешено создание связок. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения |
errorMessage | ANS..* | (при ошибке) | Сообщение об ошибке |
Элемент binding (состоит из bindingId, maskedPan и expiryDate):
Название | Тип | Обязательно | Описание |
---|---|---|---|
bindingId | AN..255 | нет | Идентификатор связки созданной при оплате заказа или использованной для оплаты. Присутствует только если магазину разрешено создание связок. |
maskedPan | N..19 | нет | Маскированный номер карты, которая использовалась для оплаты. Указан только после оплаты заказа. |
expiryDate | N6 | нет | Срок истечения действия карты в формате YYYYMM. Указан только после оплаты заказа. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | clientId не задан |
2 | Информация не найдена |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:getBindings>
<request clientId="client"/>
</mer:getBindings>
</soapenv:Body>
</soapenv:Envelope>
Пример ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getBindingsResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0" errorMessage="Успешно">
<bindings>
<binding bindingId="fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc" maskedPan="400000**0002" expiryDate="201512"/>
</bindings>
</return>
</ns1:getBindingsResponse>
</soap:Body>
</soap:Envelope>
Для получения списка связок банковской карты используется метод getBindingsByCardOrId (см. раздел Координаты подключения).
При наличии соответствующих разрешений магазин может запросить список всех связок,относящихся к определённой банковской карте. Сделать это можно по номеру карты или по известному идентификатору связки.
В ответе возвращаются все связки, доступные мерчанту в соответствии с его настройками.
Параметры запроса:
Название | Тип | Обязательно | Описание |
---|---|---|---|
pan | N..19 | нет | Номер карты. Обязательно, если не указан bindingId. Поиск по полному номеру карты доступен магазинам только при наличии соответствующего разрешения. |
bindingId | AN..255 | нет | Идентификатор связки. Обязательно, если не указан pan. Если в запросе передаётся pan, то значение bindingId игнорируется. |
showExpired | boolean | нет | Параметр определяет необходимость отображать связки с истёкшим сроком действия карты. Возможные значения: true, false. По умолчанию параметр принимает значение false. |
language | A2 | нет | Язык в кодировке ISO 639-1. Если не указан, считается, используется язык, указанный в настройках пользователя. Сообщение ошибке будет возвращено именно на этом языке. |
Параметры ответа:
Название | Тип | Обязательно | Описание |
---|---|---|---|
errorCode | N1 | да | Код завершения. |
errorMessage | ANS..* | да | Описание кода завершения. |
Элемент bindings (может состоять из нескольких элементов binding)
Элемент binding (состоит из bindingId, maskedPan, expiryDate и clientId):
bindingId | AN..255 | нет | Идентификатор связки. |
maskedPan | N..19 | нет | Маскированный номер карты, которая использовалась для оплаты. |
expiryDate | N6 | нет | Срок истечения действия карты в формате YYYYMM. |
clientId | AN..255 | нет | Номер (идентификатор) клиента в системе мерчанта. |
Коды ошибок (поле errorCode):
Значение | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок. |
1 | Не указан ни номер карты, ни идентификатор связки. |
2 | Информация не найдена. |
5 | Доступ запрещён. |
5 | Пользователь должен сменить свой пароль. |
7 | Системная ошибка. |
Пример запроса:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:getBindingsByCardOrId>
<request pan="4111111111111111" bindingId=" " showExpired="true" language="ru"/>
</mer:getBindingsByCardOrId>
</soapenv:Body>
</soapenv:Envelope>
Параметры ответа:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getBindingsByCardOrIdResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return errorCode="0" errorMessage="Успешно">
<bindings>
<binding bindingId="9f43e86d-9744-42a5-8646-c4bb7cf8799a" maskedPan="411111**1111" expiryDate="201912" clientId="12345"/>
<binding bindingId="51c0750b-1a23-424b-8989-5e8f669124b4" maskedPan="411111**1111" expiryDate="201512" clientId="123456"/>
<binding bindingId="6a8c0738-cc88-4200-acf6-afc264d66cb0" maskedPan="411111**1111" expiryDate="201912" clientId="666"/>
<binding bindingId="97a70989-c1fb-49f7-8a42-27c19dc160dw" maskedPan="411111**1111" expiryDate="201512" clientId="666"/>
</bindings>
</return>
</ns1:getBindingsByCardOrIdResponse>
</soap:Body>
</soap:Envelope>
Для оплаты через Apple Pay используется запрос applePay (см. раздел Координаты подключения).
Пример запроса представлен ниже.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:applePay>
<arg0>
<merchant>OurBestMerchantLogin</merchant>
<orderNumber>UAF-203974-DE</orderNumber>
<description>Test description</description>
<paymentToken>ew0KICB7DQoJICAidmVyc2lvbiI6ICJSU0FfdjEiLA0KCSAgInNpZ25hdHVyZSI6ICJabUZyWlNCemFXZHVZWFIxY21VPSIsDQoJICAiaGVhZGVyIjogew0KCQkiZXBoZW1lcmFsUHVibGljS2V5IjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRW14Q2hDcGpLemY5YVh6MjZXVDZaVE4yekUzaUdYUWpjWlJZWUFkUUlURFgyUmtBTmJ0N2s5cmFoRjFoempqbWVWVHhjZ0NvZkg4MXprMkdOVFozZHRnPT0iICAgICAgIA0KCQkid3JhcHBlZEtleSI6ICJYejI2V1Q2WlROMnpFM2lHWFFqYz0iDQoJCSJwdWJsaWNLZXlIYXNoIjogIk9yV2dqUkdrcUVXamRrUmRVclhmaUxHRDBoZS96cEV1NTEyRkpXckdZRm89IiwNCgkJInRyYW5zYWN0aW9uSWQiOiAiYXBwbGUtMTIzNDU2Nzg5MEFCQ0RFRiINCgkgIH0sDQoJICAiZGF0YSI6ICIxZFhFMTNrdnpUVlA2bldFTjhEMnBoclBsZlFjR3I4VzN5ajJTSFlZai9QeWNIV1RqbnBWN3ovRXI3OGJyaT09Ig0KICB9DQp9</paymentToken>
<language>RU</language>
<additionalParameters>
<entry>
<key>firstParamName</key>
<value>firstParamValue</value>
</entry>
</additionalParameters>
<preAuth>true</preAuth>
<ip>127.0.0.1</ip>
</arg0>
</mer:applePay>
</soapenv:Body>
</soapenv:Envelope>
Описание запроса представлено в таблице ниже.
Параметр | Тип данных | Обязательность | Описание |
---|---|---|---|
merchant | AN..30 | Нет | Имя входа продавца в системе платёжного шлюза. |
orderNumber | AN..32 | Нет | Уникальный номер заказа на стороне продавца. |
description | ANS..512 | Нет | Описание заказа. |
paymentToken | AN..8192 | Да |
Параметр paymentToken должен содержать закодированное в Base64 значение свойства paymentData, полученного из объекта PKPaymentToken Object от системы Apple Pay (подробнее см. документацию Apple Pay).
|
language | A2 | Нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
additionalParameters | AN..1024 | Нет |
Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Для каждого дополнительного параметра следует использовать следующие вложенный параметр entry, в который, в свою очередь, входят следующие вложенные параметры:
Ниже представлен пример части кода запроса с несколькими вложенными параметрами.
html
Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека. |
preAuth | A..5 | Да | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счёте клиента до их списания). Доступны следующие значения: · true (истина) - параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания); · false (ложь) - параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу. |
clientId | ANS..255 | Нет | Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей. |
ip | AN..20 | Нет | IP-адрес плательщика. |
Пример получаемого продавцом от Apple PKPaymentToken Object выглядит следующим образом:
{
"paymentData": {
"data": "vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN/aQQEThe2pQ0c7hgzzZlA6TpkIR/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwXp6mOwJZ6ZFO/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1/dFvQJjDYbMorKQ8GJbWtlsVbKsy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7/404kMGpnHgkNVqFc/4SN0U2XQ5rrb14DM8M69w=",
"signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDkyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O/0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22\/VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUI/JJxE+T5O8n5sT2KGw/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnwSoyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou\/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7\/S5LMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwowV3bF3zODuQZ/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDMxNzEwMzgzOVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgvL+q07/reM0N/5b0hwWT7TJReVTdS9QX5SPhiqeie+cwCgYIKoZIzj0EAwIERzBFAiEAttC68Xyzs6I0+tAKmg6x+0UrqmkQN/V5c8RMMIEJHooCIHIgUHbAt2p5WrFHQKrAVL4c7nohRplZWVbVu6wbBeCgAAAAAAAA",
"header": {
"publicKeyHash": "fpvAnSDwQFX4NX4pghdjpNwUFhoTH/DDGhew94uJaRA=",
"ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==",
"transactionId": "38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2"
},
"version": "EC_v1"
},
"transactionIdentifier": "38E4C267EF1DE62A343D0ECCADA3F7E19F6B22FFC7EDE899C039865432BA6AA2",
"paymentMethod": {
"network": "Visa",
"type": "debit",
"displayName": "Visa5223"
}
}
Значение свойства paymentData (из примера выше), которое нужно закодировать в Base64 и передать в запросе на оплату в платёжный шлюз, выглядит следующим образом:
{
"data": "vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN\/aQQEThe2pQ0c7hgzzZlA6TpkIR\/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwX+p6mOwJZ6ZFO\/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1\/dFvQJjDYbMorKQ8+GJbWtlsVb+Ksy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7\/404kMGpnHgkNVqFc\/4SN0U2XQ5rrb14DM8M69w=","signature":"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDkyNTIyMDYxMVoXDTE5MDkyNDIyMDYxMVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O\/0komJPnwPE6OCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDEwHQYDVR0OBBYEFJRX22\/VdIGGiYl2L35XhQfnm1gkMAwGA1UdEwEB\/wQCMAAwHwYDVR0jBBgwFoAUI\/JJxE+T5O8n5sT2KGw\/orv9LkswggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB\/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB\/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnw+Soyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+\/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou\/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT\/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7\/S5LMA8GA1UdEwEB\/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH\/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr\/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC\/gIwMi3VRCGwowV3bF3zODuQZ\/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE3MDMxNzEwMzgzOVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgvL+q07\/reM0N\/5b0hwWT7TJReVTdS9QX5SPhiqeie+cwCgYIKoZIzj0EAwIERzBFAiEAttC68Xyzs6I0+tAKmg6x+0UrqmkQN\/V5c8RMMIEJHooCIHIgUHbAt2p5WrFHQKrAVL4c7nohRplZWVbVu6wbBeCgAAAAAAAA",
"header": {
"publicKeyHash":"fpvAnSDwQFX4NX4pghdjpNwUFhoTH\/DDGhew94uJaRA=",
"ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB\/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==",
"transactionId":"38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2"
},
"version":"EC_v1"
}
Ниже представлен пример ответа после успешной оплаты.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:applePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>true</success>
<data>
<orderId>12312312123</orderId>
</data>
<orderStatus errorCode="0"/>
</return>
</ns1:applePayResponse>
</soap:Body>
</soap:Envelope>
Ниже представлен пример ответа после неуспешной оплаты.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:applePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>false</success>
<error>
<code>10</code>
<description>Отсутствует приватный ключ</description>
</error>
<orderStatus errorCode="0"/>
</return>
</ns1:applePayResponse>
</soap:Body>
</soap:Envelope>
Описание параметров ответа представлено в таблице ниже.
Параметр | Вложенный параметр | Тип данных | Обязательный параметр | Описание |
---|---|---|---|---|
success | Не актуально | A..5 | Да | Указывает на успешность проведения платежа. Доступны следующие значения: true (истина) - запрос успешно обработан; false (ложь) - запрос не прошёл. |
data (возвращается, только если платёж прошёл успешно) | orderId | ANS36 | Да | Уникальный для продавца номер заказа в платёжной системе. |
error (возвращается, только если платёж не прошёл) | code | N..2 | Да | Код ошибки. |
description | - | ANS..512 | Да | Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю. |
Коды ошибок, которые могут быть возвращены в результате неуспешной оплаты, представлены в таблице ниже. Сведения об используемых параметрах также представлены в документации Apple.
Код ошибки | Сообщение |
---|---|
4 | Некорректное значение параметра paymentToken.signature, проверка не пройдена |
10 | Некорректное значение параметра merchant |
10 | Некорректное значение параметра orderNumber |
10 | Некорректное значение параметра paymentToken |
10 | Некорректное значение параметра paymentToken.version |
10 | Некорректное значение параметра paymentToken.header |
10 | Некорректное значение параметра paymentToken.signature |
10 | Некорректное значение параметра paymentToken.header.transactionId |
10 | Некорректное значение параметра paymentToken.header.wrappedKey |
10 | Некорректное значение параметра paymentToken.header.publicKeyHash |
10 | Авторизация неуспешна |
Данный функционал поддерживает рекуррентные платежи только по картам MasterCard
Для регистрации заказа используется запрос recurrentPayment (см. раздел Координаты подключения).
Описание параметров представлено в таблице ниже.
Параметр | Обязательность | Описание |
---|---|---|
orderNumber | Да | Номер заказа. |
bindingId | Да | Идентификатор связки. |
amount | Да | Сумма платежа. |
description | Нет | Описание заказа. |
additionalParameters | Нет |
Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Для каждого дополнительного параметра следует использовать следующие вложенный параметр entry, в который, в свою очередь, входят следующие вложенные параметры:
Ниже представлен пример части кода запроса с несколькими вложенными параметрами.
html
Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека. |
Ниже представлен пример успешного ответа на запрос.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:recurrentPaymentResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>true</success>
<data>
<orderId>134561314642</orderId>
</data>
<orderStatus errorCode="0"/>
</return>
</ns1:recurrentPaymentResponse>
</soap:Body>
</soap:Envelope>
Ниже представлен пример неуспешного ответа на запрос.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:recurrentPaymentResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>false</success>
<error>
<code>10</code>
<description>Заказ с таким номером уже зарегистрирован.</description>
</error>
<orderStatus errorCode="0"/>
</return>
</ns1:recurrentPaymentResponse>
</soap:Body>
</soap:Envelope>
Описание параметров ответа представлено в таблице ниже.
Параметр | Вложенный параметр | Обязательный параметр | Описание |
---|---|---|---|
success | Не актуально | Да | Указывает на успешность проведения платежа. Доступны следующие значения: · true (истина) - запрос успешно обработан; · false (ложь) - запрос не прошёл. |
data (возвращается, только если платёж прошёл успешно) | orderId | Да | Уникальный для продавца номер заказа в платёжной системе. |
error (возвращается, только если платёж не прошёл) | code | Да | Код ошибки. |
description | - | Да | Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю. |
Описание параметров представлено в таблице ниже.
Параметр | Обязательно | Описание |
---|---|---|
merchant | Да | Имя входа продавца в системе платёжного шлюза. |
orderNumber | Да | Уникальный номер заказа на стороне продавца. |
description | Нет | Описание заказа. |
language | Нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
additionalParameters | Нет |
Дополнительные параметры заказа, которые сохраняются для просмотра из личного
В случае использования внешнего MPI, платёжный шлюз ожидает, что в каждом запросе на
|
preAuth | Нет | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счету клиента до их списания). Доступны следующие значения: - true (истина) - параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания);- false (ложь) - параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу. |
clientId | Нет | Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей. |
paymentToken | Да | Токен, полученный от Google Pay и закодированный в Base64. |
ip | Да | IP-адрес плательщика. |
amount | Да | Сумма платежа в минимальный единицах валюты (например, в копейках). |
currencyCode | Нет | Цифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль). |
Нет (см. описание) | Адрес электронной почты. Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона. | |
phone | Нет (см. описание) | Номер телефона. Обязателен, если у интернет-магазина настроена фискализация и не указан адрес электронной почты. |
failUrl | Нет | на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес платёжного шлюза>/<адрес продавца>.
|
returnUrl | Да | Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, https://test.ru вместо test.ru). В противном случае пользователь будет перенаправлен по адресу следующего вида: http://<адрес платёжного шлюза>/<адрес продавца>.
|
Ниже представлен пример запроса на оплату.
Для корректной обработки запроса необходимо добавить заголовок с определением типа содержимого - Content-Type: application/json.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:googlePay>
<arg0>
<merchant>OurBestMerchantLogin</merchant>
<orderNumber>UAF-203974-DE</orderNumber>
<language>RU</language>
<preAuth>true</preAuth>
<paymentToken>ewogICJwcm90b2NvbFZlcnNpb24iOiAiRUN2MSIsCiAgInNpZ25hdHVyZSI6ICJUSlZBOTVPck03RTJjQmFiMzBSTUhySERjRWZ4am9ZWmdlRk9ORmg3SGdRIiwKICAic2lnbmVkTWVzc2FnZSI6ICJ7XCJlbmNyeXB0ZWRNZXNzYWdlXCI6CiAgXCJaVzVqY25sd2RHVmtUV1Z6YzJGblpRPT1cIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOgogIFwiWlhCb1pXMWxjbUZzVUhWaWJHbGpTMlY1XCIsXCJ0YWdcIjogXCJjMmxuYm1GMGRYSmxcIn0iCn0=</paymentToken>
<ip>127.0.0.1</ip>
<amount>230000</amount>
<currencyCode>810</currencyCode>
<returnUrl>https://test.ru</returnUrl>
</arg0>
</mer:googlePay>
</soapenv:Body>
</soapenv:Envelope>
Описание параметров ответа приведены в таблице ниже.
Параметр | Вложенный параметр | Обязательный параметр | Описание |
---|---|---|---|
success | Не актуально | Да | Указывает на успешность проведения платежа. Доступны следующие значения: true (истина) - запрос успешно обработан и false (ложь) - запрос не прошёл. |
data | orderId | Да | Уникальный для продавца номер заказа в платёжной системе. |
data | termUrl | Только если используется дополнительная аутентификация на ACS банка-эмитента | При успешном ответе в случае платежа, в котором выполнялась проверка на принадлежность карты к 3-D Secure. URL-адрес для возврата с сервера контроля доступа. |
data | acsUrl | Только если используется дополнительная аутентификация на ACS банка-эмитента | При успешном ответе в случае платежа с использованием 3-D Secure. URL-адрес для перехода на сервер контроля доступа. |
data | paReq | Только если используется дополнительная аутентификация на ACS банка-эмитента | При успешном ответе в случае платежа с использованием 3-D Secure. Payment Authentication Request - запрос на аутентификацию платежа. |
data | bindingId | Только при использовании связок | Идентификатор созданной ранее связки. Может использоваться, только если у продавца есть разрешение на работу со связками. |
error | code | Да | Код ошибки. |
error | description | Да | Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю. |
error | message | Да | Понятное описание ошибки - предназначено для отображения пользователю. |
data - возвращается, только если платёж прошёл успешно
error - возвращается, только если платёж не прошёл
Примеры и описание ответа
Ниже представлен пример ответа после успешной оплаты.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:googlePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>true</success>
<data>
<orderId>12312312123</orderId>
</data>
<orderStatus errorCode="0"/>
</return>
</ns1:googlePayResponse>
</soap:Body>
</soap:Envelope>
Пример ответа после неуспешной оплаты
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:googlePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>false</success>
<error>
<code>10</code>
<description>Некорректное значение параметра [orderNumber]</description>
</error>
<orderStatus errorCode="0"/>
</return>
</ns1:googlePayResponse>
</soap:Body>
</soap:Envelope>
Описание возможных кодов ошибок представлено в таблице ниже.
Код ошибки | Сообщение об ошибке |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Недостаточно средств на карте |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
10 | Некорректное значение параметра paymentToken |
10 | Некорректное значение параметра orderNumber |
10 | Некорректное значение параметра merchant |
10 | Некорректное значение параметра ip |
10 | Расшифровка переданных данных неуспешна |
10 | Отсутствует приватный ключ |
Для оплаты через Samsung Pay используется запрос samsungPay (см. раздел Координаты подключения).
Ниже представлен Пример запроса на оплату.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
<soapenv:Header/>
<soapenv:Body>
<mer:samsungPay>
<arg0>
<merchant>OurBestMerchantLogin</merchant>
<orderNumber>UAF-203974-DE</orderNumber>
<description>Test description</description>
<paymentToken>ew0KICB7DQoJICAidmVyc2lvbiI6ICJSU0FfdjEiLA0KCSAgInNpZ25hdHVyZSI6ICJabUZyWlNCemFXZHVZWFIxY21VPSIsDQoJICAiaGVhZGVyIjogew0KCQkiZXBoZW1lcmFsUHVibGljS2V5IjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRW14Q2hDcGpLemY5YVh6MjZXVDZaVE4yekUzaUdYUWpjWlJZWUFkUUlURFgyUmtBTmJ0N2s5cmFoRjFoempqbWVWVHhjZ0NvZkg4MXprMkdOVFozZHRnPT0iICAgICAgIA0KCQkid3JhcHBlZEtleSI6ICJYejI2V1Q2WlROMnpFM2lHWFFqYz0iDQoJCSJwdWJsaWNLZXlIYXNoIjogIk9yV2dqUkdrcUVXamRrUmRVclhmaUxHRDBoZS96cEV1NTEyRkpXckdZRm89IiwNCgkJInRyYW5zYWN0aW9uSWQiOiAiYXBwbGUtMTIzNDU2Nzg5MEFCQ0RFRiINCgkgIH0sDQoJICAiZGF0YSI6ICIxZFhFMTNrdnpUVlA2bldFTjhEMnBoclBsZlFjR3I4VzN5ajJTSFlZai9QeWNIV1RqbnBWN3ovRXI3OGJyaT09Ig0KICB9DQp9</paymentToken>
<language>RU</language>
<additionalParameters>
<entry>
<key>firstParamName</key>
<value>firstParamValue</value>
</entry>
</additionalParameters>
<preAuth>true</preAuth>
<ip>127.0.0.1</ip>
</arg0>
</mer:samsungPay>
</soapenv:Body>
</soapenv:Envelope>
Описание параметров запроса представлено в таблице ниже.
Параметр | Обязательно | Описание |
---|---|---|
merchant | Нет | Имя входа продавца в системе платёжного шлюза. |
orderNumber | Да | Уникальный номер заказа на стороне продавца. |
paymentToken | Да | Содержимое параметра 3ds.data из ответа, полученного от Samsung Pay. |
ip | Да | IP-адрес плательщика. |
amount | Да | Сумма платежа в минимальный единицах валюты (например, в копейках). |
description | Нет | Описание заказа. |
language | Нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
additionalParameters | Нет |
Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Для каждого дополнительного параметра следует использовать следующие вложенный параметр entry, в который, в свою очередь, входят следующие вложенные параметры:
Ниже представлен пример части кода запроса с несколькими вложенными параметрами.
html
Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека. |
preAuth | Нет | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счёте клиента до их списания). Доступны следующие значения: true (истина) - параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания); false (ложь) - параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу. |
clientId | Нет | Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей. |
currencyCode | Нет | Цифровой код валюты платежа ISO 4217. Если не указан, считается равным коду валюты по умолчанию. |
Ниже представлен пример ответа после успешной оплаты.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:samsungPayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>true</success>
<data>
<orderId>12312312123</orderId>
</data>
<orderStatus errorCode="0"/>
</return>
</ns1:samsungPayResponse>
</soap:Body>
</soap:Envelope>
Ниже представлен пример ответа после неуспешной оплаты.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:samsungPayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant">
<return>
<success>false</success>
<error>
<code>1</code>
<description>Недостаточно средств на карте</description>
</error>
<orderStatus errorCode="0"/>
</return>
</ns1:samsungPayResponse>
</soap:Body>
</soap:Envelope>
Описание параметров ответа представлено в таблице ниже.
Параметр | Вложенный параметр | Обязательно | Описание |
---|---|---|---|
success | Не актуально | Да | Указывает на успешность проведения платежа. Доступны следующие значения: · true (истина) - запрос успешно обработан; · false (ложь) - запрос не прошёл. |
data (возвращается, только если платёж прошёл успешно) | orderId | Да | Уникальный для продавца номер заказа в платёжной системе. |
error (возвращается, только если платёж не прошёл) | code | Да | Код ошибки. |
description | - | Да | Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю. |
message | - | Да | Понятное описание ошибки - предназначено для отображения пользователю. |
Описание возможных кодов ошибок представлено в таблице ниже.
Код | Описание |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Недостаточно средств на карте |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
10 | Некорректное значение параметра paymentToken |
10 | Некорректное значение параметра orderNumber |
10 | Некорректное значение параметра merchant |
10 | Некорректное значение параметра ip |
10 | Некорректное значение параметра paymentToken.header.alg |
10 | Некорректное значение параметра paymentToken.header.enc |
10 | Некорректное значение параметра paymentToken.header.typ |
10 | Некорректное значение параметра paymentToken.header.channelSecurityContext |
10 | Некорректное значение параметра paymentToken.header.kid |
10 | Расшифровка переданных данных неуспешна |