Для оплаты заказа через внешнюю платёжную систему используется запрос 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 | Системная ошибка |
Пример запроса:
1<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant"> 2 <soapenv:Header/> 3 <soapenv:Body> 4 <mer:paymentOrderBinding> 5 <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"> 6 <! -Zero or more repetitions: → 7 <params name=" " value=" "/> 8 </order> 9 </mer:paymentOrderBinding> 10 </soapenv:Body> 11 </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>
Пример ответа:
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:getBindingsResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return errorCode="0" errorMessage="Успешно"> 5 <bindings> 6 <binding bindingId="fd3afc57-c6d0-4e08-aaef-1b7cfeb093dc" maskedPan="400000**0002" expiryDate="201512"/> 7 </bindings> 8 </return> 9 </ns1:getBindingsResponse> 10 </soap:Body> 11 </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>
Параметры ответа:
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:getBindingsByCardOrIdResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return errorCode="0" errorMessage="Успешно"> 5 <bindings> 6 <binding bindingId="9f43e86d-9744-42a5-8646-c4bb7cf8799a" maskedPan="411111**1111" expiryDate="201912" clientId="12345"/> 7 <binding bindingId="51c0750b-1a23-424b-8989-5e8f669124b4" maskedPan="411111**1111" expiryDate="201512" clientId="123456"/> 8 <binding bindingId="6a8c0738-cc88-4200-acf6-afc264d66cb0" maskedPan="411111**1111" expiryDate="201912" clientId="666"/> 9 <binding bindingId="97a70989-c1fb-49f7-8a42-27c19dc160dw" maskedPan="411111**1111" expiryDate="201512" clientId="666"/> 10 </bindings> 11 </return> 12 </ns1:getBindingsByCardOrIdResponse> 13 </soap:Body> 14 </soap:Envelope>
Для оплаты через Apple Pay используется запрос applePay (см. раздел Координаты подключения).
Пример запроса представлен ниже.
1<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mer="http://engine.paymentgate.ru/webservices/merchant"> 2 <soapenv:Header/> 3 <soapenv:Body> 4 <mer:applePay> 5 <arg0> 6 <merchant>OurBestMerchantLogin</merchant> 7 <orderNumber>UAF-203974-DE</orderNumber> 8 <description>Test description</description> 9 <paymentToken>ew0KICB7DQoJICAidmVyc2lvbiI6ICJSU0FfdjEiLA0KCSAgInNpZ25hdHVyZSI6ICJabUZyWlNCemFXZHVZWFIxY21VPSIsDQoJICAiaGVhZGVyIjogew0KCQkiZXBoZW1lcmFsUHVibGljS2V5IjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRW14Q2hDcGpLemY5YVh6MjZXVDZaVE4yekUzaUdYUWpjWlJZWUFkUUlURFgyUmtBTmJ0N2s5cmFoRjFoempqbWVWVHhjZ0NvZkg4MXprMkdOVFozZHRnPT0iICAgICAgIA0KCQkid3JhcHBlZEtleSI6ICJYejI2V1Q2WlROMnpFM2lHWFFqYz0iDQoJCSJwdWJsaWNLZXlIYXNoIjogIk9yV2dqUkdrcUVXamRrUmRVclhmaUxHRDBoZS96cEV1NTEyRkpXckdZRm89IiwNCgkJInRyYW5zYWN0aW9uSWQiOiAiYXBwbGUtMTIzNDU2Nzg5MEFCQ0RFRiINCgkgIH0sDQoJICAiZGF0YSI6ICIxZFhFMTNrdnpUVlA2bldFTjhEMnBoclBsZlFjR3I4VzN5ajJTSFlZai9QeWNIV1RqbnBWN3ovRXI3OGJyaT09Ig0KICB9DQp9</paymentToken> 10 <language>RU</language> 11 <additionalParameters> 12 <entry> 13 <key>firstParamName</key> 14 <value>firstParamValue</value> 15 </entry> 16 </additionalParameters> 17 <preAuth>true</preAuth> 18 <ip>127.0.0.1</ip> 19 </arg0> 20 </mer:applePay> 21 </soapenv:Body> 22 </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, в который, в свою очередь, входят следующие вложенные параметры:
Ниже представлен пример части кода запроса с несколькими вложенными параметрами.
Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека. В случае использования внешнего MPI, платёжный шлюз ожидает, что в каждом запросе на оплату заказа будет приходить параметр eci. Если значение eci отличается от используемых для SSL-авторизаций, также необходимо передавать параметры xid и cavv. При оплате с картами МИР с поддержкой 3-D Secure, если ECI=05 или ECI=06, значение cavv должно передаваться в обязательном порядке. |
preAuth | A..5 | Да | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счёте клиента до их списания). Доступны следующие значения: · true (истина) — параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания); · false (ложь) — параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу. |
clientId | ANS..255 | Нет | Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей. |
ip | AN..20 | Нет | IP-адрес плательщика |
Пример получаемого продавцом от Apple PKPaymentToken Object выглядит следующим образом:
1{ 2 "paymentData": { 3 "data": "vj5Uvux7Im8DD8YhSOsJvw5lWmfl2HMUnTNWJhVfTehvFffRhDo54mfpjxMt9vJdp6DwD7fgcNHDxBvnj56qYG4DpOxg1fTSdXgPFrezprZHCrRxPhN/aQQEThe2pQ0c7hgzzZlA6TpkIR/Xtk6CTcEbD1W6znFVdvMgX8G96Gg4OAGl8GaTXdSU3wlMQL5E63CLQzPi1xHVErWl1OOn6hYQuREUDGc7mAjmqMyLwXp6mOwJZ6ZFO/b9HkgFi428rqtOH08AfqkfaIWwIIAz2w3xEoZrDXbgFpNBnN7F2oretCU1/dFvQJjDYbMorKQ8GJbWtlsVbKsy0U91eoUetDcyMpB9zc139STYVoC8yp6Yk6Mn3icCLY0ZBujq7/404kMGpnHgkNVqFc/4SN0U2XQ5rrb14DM8M69w=", 4 "signature": "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", 5 "header": { 6 "publicKeyHash": "fpvAnSDwQFX4NX4pghdjpNwUFhoTH/DDGhew94uJaRA=", 7 "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErKZUfqvhlieGAOaCKeTB/oDEo29fS1jWSKemNDh3fIqmbfs86nL4BGtRsWRxWcMnHN6GFOQm1MEj4m7ZHxe78g==", 8 "transactionId": "38e4c267ef1de62a343d0eccada3f7e19f6b22ffc7ede899c039865432ba6aa2" 9 }, 10 "version": "EC_v1" 11 }, 12 "transactionIdentifier": "38E4C267EF1DE62A343D0ECCADA3F7E19F6B22FFC7EDE899C039865432BA6AA2", 13 "paymentMethod": { 14 "network": "Visa", 15 "type": "debit", 16 "displayName": "Visa5223" 17 } 18}
Значение свойства 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" }
Ниже представлен пример ответа после успешной оплаты.
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:applePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return> 5 <success>true</success> 6 <data> 7 <orderId>12312312123</orderId> 8 </data> 9 <orderStatus errorCode="0"/> 10 </return> 11 </ns1:applePayResponse> 12 </soap:Body> 13 </soap:Envelope>
Ниже представлен пример ответа после неуспешной оплаты.
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:applePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return> 5 <success>false</success> 6 <error> 7 <code>10</code> 8 <description>Отсутствует приватный ключ</description> 9 </error> 10 <orderStatus errorCode="0"/> 11 </return> 12 </ns1:applePayResponse> 13 </soap:Body> 14 </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, в который, в свою очередь, входят следующие вложенные параметры:
Ниже представлен пример части кода запроса с несколькими вложенными параметрами.
Если у продавца настроена фискализация, при указании в качестве дополнительных параметров email (адрес электронной почты покупателя) и/или phone (номер сотового телефона покупателя) эти параметры в первую очередь используются для отправки фискального чека. В случае использования внешнего MPI, платёжный шлюз ожидает, что в каждом запросе на оплату заказа будет приходить параметр eci. Если значение eci отличается от используемых для SSL-авторизаций, также необходимо передавать параметры xid и cavv. При оплате с картами МИР с поддержкой 3-D Secure, если ECI=05 или ECI=06, значение cavv должно передаваться в обязательном порядке. |
Ниже представлен пример успешного ответа на запрос.
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:recurrentPaymentResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return> 5 <success>true</success> 6 <data> 7 <orderId>134561314642</orderId> 8 </data> 9 <orderStatus errorCode="0"/> 10 </return> 11 </ns1:recurrentPaymentResponse> 12 </soap:Body> 13 </soap:Envelope>
Ниже представлен пример неуспешного ответа на запрос.
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:recurrentPaymentResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return> 5 <success>false</success> 6 <error> 7 <code>10</code> 8 <description>Заказ с таким номером уже зарегистрирован.</description> 9 </error> 10 <orderStatus errorCode="0"/> 11 </return> 12 </ns1:recurrentPaymentResponse> 13 </soap:Body> 14 </soap:Envelope>
Описание параметров ответа представлено в таблице ниже.
Параметр | Вложенный параметр | Обязательный параметр | Описание |
---|---|---|---|
success | Не актуально | Да | Указывает на успешность проведения платежа. Доступны следующие значения: · true (истина) - платёж прошёл успешно; · false (ложь) - платёж не прошёл. |
data (возвращается, только если платёж прошёл успешно) | orderId | Да | Уникальный для продавца номер заказа в платёжной системе. |
error (возвращается, только если платёж не прошёл) | code | Да | Код ошибки. |
description | - | Да | Подробное техническое объяснение ошибки - содержимое этого параметра не предназначено для отображения пользователю. |
Описание параметров представлено в таблице ниже.
Параметр | Обязательно | Описание |
---|---|---|
merchant | Да | Имя входа продавца в системе платёжного шлюза. |
orderNumber | Да | Уникальный номер заказа на стороне продавца. |
description | Нет | Описание заказа. |
language | Нет | Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию. |
additionalParameters | Нет | Дополнительные параметры заказа, которые сохраняются для просмотра из личного кабинета продавца. Для каждого дополнительного параметра следует использовать следующие вложенный параметр entry, в который, в свою очередь, входят следующие вложенные параметры:
Ниже представлен пример части кода запроса с несколькими вложенными параметрами.
В случае использования внешнего MPI, платёжный шлюз ожидает, что в каждом запросе на оплату заказа будет приходить параметр eci. Если значение eci отличается от используемых для SSL-авторизаций, также необходимо передавать параметры xid и cavv. При оплате с картами МИР с поддержкой 3-D Secure, если ECI=05 или ECI=06, значение cavv должно передаваться в обязательном порядке |
preAuth | Нет | Параметр, определяющий необходимость предварительной авторизации (блокирования средств на счету клиента до их списания). Доступны следующие значения: - true (истина) - параметр включён, оплата происходит с предавторизацией (происходит блокирование средств клиента до списания);- false (ложь) - параметр выключен (списание происходит сразу). Если параметр не указан в запросе, списание происходит сразу. |
clientId | Нет | Номер клиента, для которого следует создать связку для проведения регулярных платежей. Следует указывать, только если проводится технический платёж для последующих регулярных платежей. |
paymentToken | Да | Токен, полученный от Google Pay и закодированный в Base64. |
ip | Да | IP-адрес плательщика. |
amount | Да | Сумма платежа в минимальный единицах валюты (например, в копейках). |
currencyCode | Нет | Цифровой код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль) |
Нет (см. описание) | Адрес электронной почты. Обязателен, если у интернет-магазина настроена фискализация и не указан номер телефона. | |
phone | Нет (см. описание) | Номер телефона. Обязателен, если у интернет-магазина настроена фискализация и не указан адрес электронной почты. |
failUrl | Нет | Адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, `https://test.ru` вместо `test.ru`). В противном случае пользователь будет перенаправлен по адресу следующего вида: `http://<адрес платёжного шлюза>/<адрес продавца>`.
См. также блок 3DS-платёж - для одностадийных и двухстадийных платежей. |
returnUrl | Да | Адрес, на который требуется перенаправить пользователя в случае успешной оплаты. Адрес должен быть указан полностью, включая используемый протокол (например, `https://test.ru` вместо `test.ru`). В противном случае пользователь будет перенаправлен по адресу следующего вида: `http://<адрес платёжного шлюза>/<адрес продавца>`.
См. также блок 3DS-платёж - для одностадийных и двухстадийных платежей. |
Ниже представлен пример запроса на оплату.
Для корректной обработки запроса необходимо добавить заголовок с определением типа содержимого - Content-Type: application/json.
1<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
2xmlns:mer="http://engine.paymentgate.ru/webservices/merchant">
3<soapenv:Header/>
4<soapenv:Body>
5<mer:googlePay>
6<arg0>
7<merchant>OurBestMerchantLogin</merchant>
8<orderNumber>UAF-203974-DE</orderNumber>
9<language>RU</language>
10<preAuth>true</preAuth>
11<paymentToken>ewogICJwcm90b2NvbFZlcnNpb24iOiAiRUN2MSIsCiAgInNpZ25hdHVyZSI6ICJUSlZBOTVPck03RTJjQmFiMzBSTUhySERjRWZ4am9ZWmdlRk9ORmg3SGdRIiwKICAic2lnbmVkTWVzc2FnZSI6ICJ7XCJlbmNyeXB0ZWRNZXNzYWdlXCI6CiAgXCJaVzVqY25sd2RHVmtUV1Z6YzJGblpRPT1cIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOgogIFwiWlhCb1pXMWxjbUZzVUhWaWJHbGpTMlY1XCIsXCJ0YWdcIjogXCJjMmxuYm1GMGRYSmxcIn0iCn0=</paymentToken>
12<ip>127.0.0.1</ip>
13<amount>230000</amount>
14<currencyCode>810</currencyCode>
15<returnUrl>https://test.ru</returnUrl>
16</arg0>
17</mer:googlePay>
18</soapenv:Body>
19</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 - возвращается, только если платёж не прошёл
Примеры и описание ответа
Ниже представлен пример ответа после успешной оплаты.
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:googlePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return> 5 <success>true</success> 6 <data> 7 <orderId>12312312123</orderId> 8 </data> 9 <orderStatus errorCode="0"/> 10 </return> 11 </ns1:googlePayResponse> 12 </soap:Body> 13</soap:Envelope>
Пример ответа после неуспешной оплаты
1<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 2 <soap:Body> 3 <ns1:googlePayResponse xmlns:ns1="http://engine.paymentgate.ru/webservices/merchant"> 4 <return> 5 <success>false</success> 6 <error> 7 <code>10</code> 8 <description>Некорректное значение параметра [orderNumber]</description> 9 </error> 10 <orderStatus errorCode="0"/> 11 </return> 12 </ns1:googlePayResponse> 13 </soap:Body> 14</soap:Envelope>
Описание возможных кодов ошибок представлено в таблице ниже.
Код ошибки | Сообщение об ошибке |
---|---|
0 | Обработка запроса прошла без системных ошибок |
1 | Недостаточно средств на карте |
5 | Доступ запрещён |
5 | Пользователь должен сменить свой пароль |
7 | Системная ошибка |
10 | Некорректное значение параметра paymentToken |
10 | Некорректное значение параметра orderNumber |
10 | Некорректное значение параметра merchant |
10 | Некорректное значение параметра ip |
10 | Расшифровка переданных данных неуспешна |
10 | Отсутствует приватный ключ |