Описание способов взаимодействия

Оплата банковской картой товаров и услуг через интернет может осуществляться с
передачей полных карточных реквизитов в платёжный шлюз, с помощью связок, а
также с использованием внешних платёжных систем.

Механизм оплаты (одностадийный и двухстадийный)

Магазин может использовать одностадийный или двухстадийный механизм принятия платежа.

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

Схемы взаимодействия с платёжным шлюзом

Магазину для интеграции с платёжным шлюзом доступны различные схемы подключения в зависимости от механизма (одностадийный или двухстадийный) и инструмента оплаты. В текущем документе представлено описание следующих схем подключения.

  • Раздел Одностадийная оплата с указанием карточных данных на платёжной странице описывает схему, при которой клиент для оплаты заказа вводит реквизиты своей карты на платёжной странице, откуда карточные данные передаются в шлюз для проведения одностадийной оплаты.
  • Раздел Двухстадийная оплата с указанием карточных данных на платёжной странице описывает схему, при которой клиент для оплаты заказа вводит реквизиты своей карты на платёжной странице, откуда карточные данные передаются в шлюз для проведения двухстадийной оплаты.
  • Раздел Оплата с помощью связки на платёжной странице описывает схему, при которой карта клиента привязывается к идентификатору клиента в системе магазина, что позволяет предлагать для авторизованных пользователей автозаполнение полей карточных данных на платёжной странице.
  • Схема, описанная в разделе Одностадийные автоплатежи предполагает совершение клиентом первоначальной оплаты на платёжной странице с согласием на подключение услуги Автоплатежа. После этого магазин самостоятельно отслеживает дату, когда необходимо провести очередной платёж, и инициирует оплату без дополнительного ввода карточных данных (без участия клиента).
  • Схема, описанная в разделе Двухстадийные автоплатежи предполагает совершение клиентом первоначальной оплаты на платёжной странице с согласием на подключение услуги "Автоплатежа". После этого магазин самостоятельно отслеживает дату, когда необходимо провести очередной платёж, и инициирует оплату без дополнительного ввода карточных данных (без участия клиента).
  • Раздел Использование Альфа-клик" для оплаты заказа описывает схему оплаты, которая доступна только для клиентов интернет-банка "Альфа-Клик". При этой схеме ввода платёжных реквизитов происходит на стороне внешней системы PayByClick.
  • Раздел Использование UPOP для оплаты заказа описывает схему оплаты, которая доступна только для держателей карт China UnionPay. При этой схеме ввод платёжных реквизитов происходит на стороне внешней системы China UnionPay.
  • Раздел Оплата с использованием Apple Pay описывает схему оплаты, доступную владельцам мобильных устройств Apple через систему Apple Pay.
  • Раздел Оплата с использованием Samsung Pay описывает схему оплаты, доступную владельцам мобильных устройств Samsung через систему Samsung Pay.
  • Раздел Оплата с использованием Google Pay описывает схему оплаты, доступную владельцам мобильных устройств на ОС Android через систему Google Pay.
  • Раздел Платёж на свободную сумму описывает сценарий оплаты с использованием страницы платежа на свободную сумму, размещённой в платёжном шлюзе.
    В зависимости от схемы взаимодействия, по которой работает магазин, требуется использовать определённый набор запросов. В описаниях перечисленных выше сценариев указано на каком шаге сценария какой запрос должен использоваться, а также дана ссылка на раздел со спецификацией запроса.
    Возможные интерфейсы взаимодействия с платёжным шлюзом представлены в следующем разделе.

Интерфейсы взаимодействия с платёжным шлюзом

Магазин для взаимодействия с платёжным шлюзом может использовать один из интерфейсов – интерфейс на WebService-ах или REST.
Для авторизации обращения магазина к системе платёжного шлюза в любом запросе со стороны магазина должны быть приведены имя и пароль магазина, полученные при регистрации магазина в системе. Подробная информация об авторизации обращений представлена ниже.

Реализация взаимодействия через интерфейс на Web-Service
Описание (WSDL) сервиса находится на тестовом сервере, который доступен без ограничений.
Значения имени и пароля передаются в формате, описанном в рамках спецификации WS-Security, тип авторизации userName token. Заголовок при такой авторизации будет выглядеть примерно так (см. ниже).

html
        <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-
secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-
%20wssecurity-utility-1.0.xsd"> 
    <wsse:UsernameToken wsu:Id="UsernameToken-87"> 
         <wsse:Username>aa</wsse:Username> 
         <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-
          token-profile-1.0#PasswordText">123456</wsse:Password> 
    </wsse:UsernameToken> 
 </wsse:Security>
    

Если в ответе на запрос errorCode (Код ошибки) = 0, это означает, что запрос был обработан платежным шлюзом без системных ошибок. При этом errorCode не отображает статус заказа.
Для получения статуса заказа следует использовать запрос getOrderStatus или getOrderStatusExtended (один из этих методов обязательно должен быть реализован при интеграции ТСП с платёжным шлюзом).

Реализация взаимодействия через интерфейс REST
Взаимодействие реализуются как HTTP обращения методом POST на определенные URL.
Результат обработки запроса возвращается в виде JSON объекта. Например: {"errorCode":"12","errorMessage":"Empty amount"}
Значения имени и пароля передаются в следующих параметрах (см. таблицу ниже).

Название Тип Обязательность Описание
password AN..30 да Пароль магазина, полученный при подключении
userName AN..30 да Логин магазина, полученный при подключении

Все текстовые поля должны иметь кодировку Юникод (UTF-8).
Спец-символы в REST запросе должны быть экранированы в соответствии с URL-кодом. Таблица символов расположена по следующему адресу: https://wm-school.ru/html/html_url_acsii.html. Например, пароль qwe?rt%y должен передаваться в виде qwe%0Frt%25y.
Если в ответе на запрос errorCode (Код ошибки) = 0, это означает, что запрос был обработан платежным шлюзом без системных ошибок. При этом errorCode не отображает статус заказа.
Для получения статуса заказа следует использовать запрос getOrderStatus.do или getOrderStatusExtende.do (один из этих методов обязательно должен быть реализован при интеграции ТСП с платёжным шлюзом).

Координаты подключения

При регистрации магазина представителю предоставляется пара логин/пароль, которая должна использоваться в протоколах.
Описание тестового сервиса (WSDL) находится по адресу:
https://web.rbsuat.com/ab/webservices/merchant-ws?wsdl

Описание тестового сервиса (WSDL) по СБП находится по адресу:
https://web.rbsuat.com/ab/webservices/sbpc2b-ws?wsdl

URL для доступа к методам REST:

Название метода URL
Регистрация заказа с предавторизацией https://web.rbsuat.com/ab/rest/registerPreAuth.do
Регистрация заказа https://web.rbsuat.com/ab/rest/register.do
Расширенный запрос состояния заказа https://web.rbsuat.com/ab/rest/getOrderStatusExtended.do
Запрос статистики по платежам за период https://web.rbsuat.com/ab/rest/getLastOrdersForMerchants.do
Запрос списка связок определённой банковской карты https://web.rbsuat.com/ab/rest/getBindingsByCardOrId.do
Запрос списка связок клиента https://web.rbsuat.com/ab/rest/getBindings.do
Запрос состояния заказа https://web.rbsuat.com/ab/rest/getOrderStatus.do
Запрос проверки вовлеченности карты в 3DS https://web.rbsuat.com/ab/rest/verifyEnrollment.do
Запрос проведения платежа по связке https://web.rbsuat.com/ab/rest/paymentOrderBinding.do
Запрос отмены оплаты заказа https://web.rbsuat.com/ab/rest/reverse.do
Запрос оплаты через внешнюю платёжную систему https://web.rbsuat.com/ab/rest/paymentotherway.do
Запрос на регулярный платёж https://web.rbsuat.com/ab/recurrentPayment.do
Запрос на оплату через Samsung Pay https://web.rbsuat.com/ab/samsung/payment.do
Запрос на оплату через Apple Pay https://web.rbsuat.com/ab/applepay/payment.do
Запрос на оплату через Google Pay https://web.rbsuat.com/ab/google/payment.do
Запрос изменения срока действия связки https://web.rbsuat.com/ab/rest/extendBinding.do
Запрос завершения оплаты заказа https://web.rbsuat.com/ab/rest/deposit.do
Запрос добавления дополнительных параметров к заказу https://web.rbsuat.com/ab/rest/addParams.do
Запрос деактивации связки https://web.rbsuat.com/ab/rest/unBindCard.do
Запрос возврата средств оплаты заказа https://web.rbsuat.com/ab/rest/refund.do
Запрос активации связки https://web.rbsuat.com/ab/rest/bindCard.do
Запрос получения QR кода по СБП https://web.rbsuat.com/ab/rest/sbp/c2b/qr/dynamic/get.do
Запрос получения статуса платежа по QR коду по СБП https://web.rbsuat.com/ab/rest/sbp/c2b/qr/status.do