Инструменты страницы

Запрос оплаты заказа (paymentorder.do)

Для оплаты заказа используется запрос paymentorder.do.

В настоящем документе при описании параметров запросов и ответов используются следующие обозначения типов данных:

  • A<n> – последовательность латинских букв длины <n>;
  • A..<n> – последовательность латинских букв длиной, не превышающей <n>;
  • N<n> – последовательность цифр длины <n>;
  • N..<n> – последовательность цифр длиной, не превышающей <n>;
  • AN<n> – последовательность латинских букв и цифр фиксированной длины <n>;
  • AN..<n> – последовательность латинских букв и цифр длиной, не превышающей <n>;
  • ANS<n> – последовательность латинских букв, цифр и символов фиксированной длины <n>
  • ANS..<n> – последовательность латинских букв, цифр и символов длиной, не превышающей <n>;
  • UTC – дата и время, при этом: дата должна быть передана без указания часового пояса, время московское, для протокола SOAP используется стандартная кодировка xs:dateTime.

Параметры запроса:

Название Тип Обязательно Описание

userName

AN..30

Да

Логин служебной учётной записи продавца.

password

AN..200

Да

Пароль служебной учётной записи продавца.

MDORDER

ANS..36

Да

Номер заказа в платёжном шлюзе. Уникален в пределах платёжного шлюза.

$PAN

N12…19

Да

Номер платёжной карты.

При указании в запросе параметра seToken этот параметр не обязателен к передаче.

$CVC

N3

Да

Код CVC/CVV2 на обратной стороне карты.

При указании в запросе параметра seToken этот параметр не обязателен к передаче.

YYYY N4 Да Год истечения срока действия карты.
MM N2 Да Месяц истечения срока действия карты.
TEXT A..512 Да

Имя держателя карты латиницей, если доступно. Длина поля ограничена 26 символами (латинские буквы, точка, пробел).

language

A2

Да

Язык в кодировке ISO 639-1. Если не указан, будет использован язык, указанный в настройках магазина как язык по умолчанию.

ip

ANS..39

Нет

IP-адрес покупателя. IPv6 поддерживается во всех запросах (до 39 символов).

email

ANS..40

Нет

Адрес электронной почты покупателя.

bindingNotNeeded

булеан

Нет

Возможные значения:

  • true – запрет на создание связки после платежа (идентификатор клиента, переданный при регистрации заказа, после совершения платежа будет удалён из деталей заказа);
  • false – в результате успешной оплаты может быть создана связка (при выполнении соответствующих условий). Это значение является значением по умолчанию.

jsonParams

Строка

Нет

Дополнительные параметры запроса. Формат вида: {«Имя1»: «Значение1», «Имя2»: «Значение2»}. При указании «showLoyalty»:«false» взаимодействие с сервисом лояльности осуществляться не будет.

В параметре запрещено передавать зарезервированные имена (в случае их передачи заказ может быть отклонен):

  • sbrf_spasibo:amount_bonus
  • sbrf_sbermiles:amount_bonus
  • loyaltyId
  • overridenClientId

billingPayerData

См. описание

Нет

Блок c регистрационными данными клиента (адрес, почтовый индекс), необходимыми для прохождения проверки адреса в рамках сервисов AVS/AVV.

Обязателен, если активна соответствующая пермиссия для мерчанта («Разрешено использование AVS/AVV»).

billingPayerData

Параметры блока billingPayerData

Название Тип Обязательно Описание

billingCity

AN..50

Нет

Город, зарегистрированный по конкретной карте у Банка Эмитента

billingCountry

AN..50

Нет

billingAddressLine1

AN..50

Нет

Адрес, зарегистрированный по конкретной карте у Банка Эмитента

Строка 1.

Обязательно, если у Мерчанта активирована пермиссия «Разрешено использование AVS/AVV».

billingAddressLine2

AN..50

Нет

Адрес, зарегистрированный по конкретной карте у Банка Эмитента

Строка 2.

billingAddressLine3

AN..50

Нет

Адрес, зарегистрированный по конкретной карте у Банка Эмитента

Строка 3.

billingPostalCode

AN..50

Нет

Почтовый индекс, зарегистрированный по конкретной карте у Банка Эмитента.

Обязательно, если у Мерчанта активирована пермиссия «Разрешено использование AVS/AVV».

billingState

AN..50

Нет

Штат, зарегистрированный по конкретной карте у Банка Эмитента (ISO 3166-2)

** По умолчанию в процессинг банка передаются поля номер заказа orderNumber и его описание description (не более 99 символов, запрещены к использованию %, +, конец строки \r и перенос строки \n)

При аутентификации по протоколу 3DS 2.0 также передаются следующие параметры:

Название Тип Обязательно Описание

threeDSServerTransId

ANS..36

См. описание

Идентификатор транзакции созданный на сервере 3DS.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSVer2FinishUrl

AN..512

Нет

Адрес переадресации клиента после аутентификации на сервере ACS.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSMethodNotificationUrl

AN..512

Нет

Адрес для отправки уведомления о прохождении проверки 3D Secure.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

Параметры ответа:

Название Тип Обязательно Описание

errorCode

N..2

Да

Код ошибки.

errorMessage

AN..512

Нет

Описание ошибки на языке, переданном в параметре language в запросе.

info

ANS..*

Нет

При успешном ответе. Результат попытки оплаты. Возможные значения представлены ниже.

  • Ваш платёж обработан, происходит переадресация…
  • Операция отклонена. Проверьте введённые данные, достаточность средств на карте и повторите операцию. Происходит переадресация…
  • Извините, платёж не может быть совершён. Происходит переадресация…
  • Операция отклонена. Обратитесь в магазин. Происходит переадресация…
  • Операция отклонена. Обратитесь в банк, выпустивший карту. Происходит переадресация…
  • Операция невозможна. Аутентификация держателя карты завершена неуспешно. Происходит переадресация…
  • Нет связи с банком. Повторите позже. Происходит переадресация…
  • Истёк срок ожидания ввода данных. Происходит переадресация…
  • Не получен ответ от банка. Повторите позже. Происходит переадресация…

redirect

ANS..*

Нет

При успешном ответе. В случае платежа без необходимости аутентификации на ACS – URL, на который производится переадресация после платежа. В случае 3DS-платежа – URL для возврата с ACS.

termUrl

AN..512

Нет

Ссылка перенаправления плательщика после аутентификации.

Не используется при платежах, не требующих дополнительной аутентификации на ACS Банка-эмитента.

acsUrl

AN..512

Нет

Адрес перенаправления на адрес сервера ACS.

Не используется при платежах, не требующих дополнительной аутентификации на ACS Банка-эмитента.

paReq

AN..512

Нет

Запрос аутентификации плательщика.

Не используется при платежах, не требующих дополнительной аутентификации на ACS Банка-эмитента.

При аутентификации по протоколу 3DS 2.0 при первичном запросе возвращаются следующие параметры:

Название Тип Обязательно Описание

is3DSVer2

A..5

Да

Флаг, обозначающий то, что платёж/перевод будет проведён по протоколу 3DS версии 2.0. Доступны следующие значения:

  • true (истина) - платёж/перевод будет проведён по протоколу 3DS версии 2.0;
  • false (ложь) - платёж/перевод не будет проводиться по протоколу 3DS версии 2.0.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSServerTransId

ANS..36

Да

Идентификатор транзакции созданный на сервере 3DS.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSMethodURL

ANS..512

Нет

URL-адрес ACS для сбора данных о браузере.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSMethodURLServer

ANS..512

Да

URL-адрес сервера 3DS для сбора данных о браузере для включения в запрос аутентификации AReq (Authentication Request) от сервера 3DS к серверу ACS.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSMethodDataPacked

ANS..1024

Нет

Данные CReq (Challenge Response) для отправки на сервер ACS, закодированные в Base64.

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

threeDSMethodURLServerDirect

ANS..512

Нет

URL-адрес на метод 3dsmethod.do для выполнения 3DS метода на сервере 3DS через ПШ (при наличии соответствующей пермиссии).

Параметр используется при проведения аутентификации клиента по протоколу 3DS версии 2.0.

При аутентификации по протоколу 3DS 2.0 после повторного запроса на оплату и необходимости перенаправления клиента на ACS в ответе будут присутствовать следующие параметры.

Название Тип Обязательно Описание

acsUrl

AN..512

Да, в случае необходимости перенаправления на ACS

Адрес перенаправления на адрес сервера ACS.

packedCReq

ANS..*

Да, в случае необходимости перенаправления на ACS

Запакованные данные challenge request. Это значение следует использовать как значение параметра creq ссылки на ACS (acsUrl), для перенаправления клиента на ACS.

Коды ошибок

Код ошибки Текст ошибки
0 Обработка запроса прошла без системных ошибок
5 Использованы все попытки оплаты
5 Системная или внутренняя ошибка

Пример первого запроса

MDORDER=0d4b02cb-5147-4232-9012-4d38c743ahr6&$PAN=5555555555555599&$CVC=123&YYYY=2015&MM=12&TEXT=Card Holder&language=ru

Пример ответа на первый запрос

{
  "errorCode": 0,
  "is3DSVer2": true,
  "threeDSServerTransId": "f44d6d21-1874-45a5-aeb0-1c710dd6e134",
  "threeDSMethodURLServer": "https://test.com/3dsserver/gatherClientInfo?threeDSServerTransID=f44d6d21-1874-45a5-aeb0-1c710dd6e134"
}

Пример второго запроса

MDORDER=0d4b02cb-5147-4232-9012-4d38c743ahr6&$PAN=5555555555555599&$CVC=123&YYYY=2015&MM=12&TEXT=Card Holder&language=ru&threeDSServerTransId=f44d6d21-1874-45a5-aeb0-1c710dd6e134&threeDSVer2FinishUrl=https:test.com

Пример ответа на повторный запрос

{
  "info": "Ваш платёж обработан, происходит переадресация...",
  "errorCode": 0,
  "acsUrl": "https://test.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjVmMzEyMjdlLTljZmQtNDQwYi1hNDNjLTE4NjljMzNhNGI5YiIsImFjc1RyYW5zSUQiOiI5YTQyYzQ4ZC1hNWRiLTQ3NjEtYmI4Mi05ZmY5MmM0NzZiM2QiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0="
}

Если попытки оплаты заказа исчерпаны, то на последнюю попытку оплаты шлюз возвращает следующий ответ.

{"redirect":"false.html?login=test&orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1&lang=ru","info":"Операция отклонена. Проверьте введенные данные, достаточность средств на карте и повторите операцию.<br>Происходит переадресация...","errorCode":0}

В качестве URL-адреса перенаправления указывается значение, переданное в параметре failUrl (или returnUrl, если failUrl отсутствует).

На все последующие попытки оплаты платёжный шлюз вернёт следующий ответ.

{"redirect":"false.html?login=test&orderId=85eb9a84-2a47-7cca-b0ae-662c000016d1&lang=ru","info":"Происходит переадресация...","errorCode":0}

В качестве URL-адреса перенаправления указывается значение, переданное в параметре failUrl (или returnUrl, если failUrl отсутствует).

При этом шлюз не будет возвращать ошибку.