Введение

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

Что дальше:

  1. Подключите свое ПО к нашей демо-зоне
  2. Проведите несколько тестовых платежей
  3. Выводите свое ПО в боевой режим

URL для запросов - https://acq.ipsp.kz

Так же необходимо, чтоб вы прислали свои IP, с которых будут идти запрос, чтобы мы добавили их в список разрешённых адресов.

Алгоритм

  1. Создайте платёж, используя метод payment/do (Выполнить платеж).
  2. В ответе вы получите данные для прохождения 3ds v1/3ds v2.
  3. Пройдите процедуру аутентификации 3ds (подробнее в разделе ЧаВо).
  4. Если вы использовали параметр для предавторизации средств (stage: PREAUTH), необходимо подтвердить платёж, используя метод /payment/confirm (Подтвердить выполнение платежа) или отменить платёж методом /payment/cancel (Отменить платёж).
  5. Статус платежа можно проверить вызвав метод /payment/status
  6. Если необходимо вернуть успешный платёж, используйте метод /payment/refund (Вернуть средства)

Методы

ЧаВо

В данном разделе мы отвечаем на часто задаваемые вопросы, которые мгоут возникнуть при подключении.

В: Какие параметры необходимо передавать в browserInfo?

О: Желательно передать все параметры, которые начинаются на browser, но достаточно будет передать данные параметры: {"browserLanguage":"en","browserColorDepth":"32","browserScreenHeight":"1920","browserScreenWidth":"1080","browserTZ":"0","browserUserAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)Gecko/20100101 Firefox/47.0"}

"md" : "string" ,

В:Есть ли алгоритм прохождения аутентификации 3ds 2.0?

О: Описание прохождения 3ds 2.0 ниже:

resultCode со значением 3 указывает на необходимость пройти аутентификацию 3ds2.

В этом случае в ответе приходит группа параметров threeDSDataV2

Параметры:

gatewaySessionId* - Идентификатор платежной сессии шлюза, приходит всегда

url - Адрес, на который нужно перенаправить клиента для проведения 3DS method и аутентификации 3DSv2, могут быть ситуации, когда параметр отсутствует в ответе на создание платежа, в таком случае необходимо следовать инструкции ниже

threeDSMethodData - Данные для выполнения 3DS method, приходит если карта подписана на 3dsMethod

threeDSMethodURLServer - Адрес для выполнения post-запроса в отдельном скрытом iframe без параметров при выполнении 3DS method, если значение передано (специфичен для РБС)

threeDSSessionData - Идентификатор сессии 3DSv2

creq - Тело запроса к ACS серверу эмитента 3DSv2

1. карта не подписана на 3dsMethod. Необходимое условие resultCode:3

Присутствуют параметры:

threeDSDataV2.gatewaySessionId

threeDSDataV2.url

threeDSDataV2.threeDSSessionData

threeDSDataV2.creq

Действия (По аналогии с 3ds1): создается форма action = threeDSDataV2.url, c двумя параметрами threeDSSessionData, creq.

Автоматический сабмит формы, пользователь проходит аутентификацию, после проверки пользователь вернется на url указанный в запросе проведения платежа PaymentRequest.merchantTermUrl с двумя параметрами hreeDSSessionData, cres. После этого необходимо вызвать метод /payment/authenticate/v2 Результат выполнения аутентификации 3DSv2. В ответе будет результат оплаты

2. карта подписана на 3dsMethod. Необходимое условие resultCode:3 Присутствуют параметры: threeDSDataV2.gatewaySessionId threeDSDataV2.url threeDSDataV2.threeDSMethodData threeDSDataV2.threeDSMethodURLServer (может не быть)

Если присутствует threeDSDataV2.threeDSMethodURLServer запрос POST в скрытом iframe

<form id="tdsMethod3DsServer" method="post" action=threeDSMethodURLServer` target="tdsMethod3DsServerFrame"></form> <iframe name="tdsMethod3DsServerFrame" width="0" height="0" style="display: none;"></iframe>

Сабмит автоматически при загрузке страницы

threeDSMethodData - base64url строка внутри json пример:

{"threeDSMethodNotificationURL":"https://ecomtest.akbars.ru:9999/cgi-bin/cgi_link","threeDSServerTransID":"41fae092-b99a-413d-8279-e0112cabf996"}

в скрытом iframe нужно выполнить POST запрос на адрес threeDSDataV2.url с параметром threeDSMethodData

Сабмит автоматически при загрузке страницы. Тут варианты:

2.1. чтобы получить уведомление о прохождении клиентом 3DSMethod можно установить threeDSMethodNotificationURL свой url после получения ответа и возврата клиента на этот url необходимо выполнить запрос POST на адрес первоначально указанный в threeDSMethodNotificationURL (в ответе от acs передается один параметр threeDSMethodData) Если клиент вернулся в течении 10 секунд выполняем запрос /payment/tdsmethod/complete Результат выполнения 3dsMethod указав "threeDSMethodState": "Y" если нет "threeDSMethodState": "N"

2.2. не подменять threeDSMethodNotificationURL, после автосабмита форм выполнить /payment/tdsmethod/complete c передачей параметра threeDSMethodData, полученного при вызове метода payment/do. Результат выполнения 3dsMethod "threeDSMethodState": "N"

Если аутентификация прошла на основе 3DSMethod в ответе будет результат платежа, если требуется пройти аутентификацию с участием клиента (challenge flow) будет передан resultCode:3 Присутствуют параметры:

threeDSDataV2.gatewaySessionId

threeDSDataV2.url

threeDSDataV2.threeDSSessionData

threeDSDataV2.creq

Действия аналогичны п1

3. У некоторых банков есть своя специфика работы c 3ds

Могут прийти оба адреса - threeDSDataV2.url и threeDSDataV2.threeDSMethodURLServer, а может прийти только один из них, оба будут заполнены, либо какой то из них

Отсюда также следует, что:

<>