Мы предполагаем, что если вы здесь, значит, вы зарегистрировались в личном кабинете, пообщались с нашим отделом продаж, определились с типом взаимодействия с нами и готовы перейти к тестированию боевых, либо тестовых параметров. Получили сертификат, токен и готовы продолжить.
Что дальше:
URL для запросов - https://acq.ipsp.kz
Так же необходимо, чтоб вы прислали свои IP, с которых будут идти запрос, чтобы мы добавили их в список разрешённых адресов.
/payment/confirm
(Подтвердить выполнение платежа) или отменить платёж методом /payment/cancel
(Отменить платёж)./payment/status
/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"}
В:Есть ли алгоритм прохождения аутентификации 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
threeDSSessionData
, creq
.
Автоматический сабмит формы, пользователь проходит аутентификацию, после проверки пользователь вернется на url указанный в
запросе проведения платежа PaymentRequest.merchantTermUrl с двумя параметрами hreeDSSessionData
, cres
.
После этого необходимо вызвать метод /payment/authenticate/v2 Результат выполнения аутентификации 3DSv2. В ответе будет результат оплаты
threeDSDataV2.gatewaySessionId
threeDSDataV2.url
threeDSDataV2.threeDSMethodData
threeDSDataV2.threeDSMethodURLServer
(может не быть)
Если присутствует threeDSDataV2.threeDSMethodURLServer
запрос POST в скрытом 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"
threeDSDataV2.gatewaySessionId
threeDSDataV2.url
threeDSDataV2.threeDSSessionData
threeDSDataV2.creq
3. У некоторых банков есть своя специфика работы c 3ds
Могут прийти оба адреса - threeDSDataV2.url и threeDSDataV2.threeDSMethodURLServer, а может прийти только один из них, оба будут заполнены, либо какой то из них
Если присутствуют оба параметра, то нужно выполнить 2 скрытых iframe post и сабмит при загрузке страницы.
Если присутствует только параметр threeDSDataV2.url, то выполнить 1 скрытый iframe post с передачей параметра threeDSMethodData
Если присутствует только параметр threeDSDataV2.threeDSMethodURLServer, то выполнить 1 скрытый iframe post без передачи параметра threeDSMethodData
Отсюда также следует, что:
Если отсутствует threeDSDataV2.threeDSMethodURLServer, то обязательно должен быть передан threeDSDataV2.url
Если присутствует threeDSDataV2.threeDSMethodURLServer, то threeDSDataV2.url может не присутствовать