Сұрақтарыңыз бар болса, бір түймен біргеміз

Бізге хабарласу

Тікелей біріктіру

Қаражаттарды резервтеу және байлаулы картасын құру

Тікелей біріктіру

  1. Клиент Интернет-дүкенде өнімді таңдап, Сатып алу түймесіне басады.
  2. Интернет-дүкеннің сервері сатып алуға сұратымды алып, төлем бетін ашады.
  3. Сатып алушы интернет-дүкеннің төлем бетінде өз картасының деректерін енгізеді.
  4. Интернет-дүкеннің сервері карта деректерін жинайды.
  5. Интернет-дүкеннің сервері clientId нөмірімен тапсырысты тіркейді, сосын төлем шлюзіне деректерді жібереді.
  6. Төлем шлюзі ACS серверіне қатынасуға рұқсат алу үшін Directory Server-мен өзара әрекет етеді. Ол ACS серверінен интернет-дүкенге қайта бағыттау үшін қажетті барлық деректерді қайтарады.
  7. Интернет-дүкеннің сервері төлем шлюзіне клиентті қайта бағыттайды.
  8. Төлем шлюзі клиентті ACS серверіне қайта бағыттайды.
  9. Карта иесі тапсырысты растайды, сосын ACS сервері оны төлем шлюзіне қайта бағыттайды.
  10. Клиент Интернет-дүкеннің бетіне қайта оралады немесе браузердің қойыншасын жабады.
  11. Төлем шлюзі кері қоңырау шалу туралы хабарландыруды интернет-дүкеннің серверіне бейсинхронды түрде жібереді.
  12. Интернет-дүкеннің сервері тапсырыстың күйін тексереді, нәтижесінде, кейінгі рекуррентті төлемдерде пайдаланылатын bindingId алады.

clientId тапсырысты тіркеу

curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/registerPreAuth.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data currency=978 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=finish.html \
  --data description=my_second_order \
  --data clientId=659753456 \
  --data 'jsonParams={"recurringFrequency": "5", "recurringExpiry": "20240101"}' \ 
  --data language=en
{
  "orderId": "017908cc-57c6-739a-ad25-df0d00a7d8c0",
  "formUrl": "https://3dsec.berekebank.kz/payment/merchants/rbs/payment_en.html?mdOrder=017908cc-57c6-739a-ad25-df0d00a7d8c0"
}

paymentOrder сұратымының әдісі

curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/paymentorder.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data MDORDER=019dbf02-e9f4-7fe2-b1c2-d50500a7d8c0 \
  --data '$PAN=4012001038166662' \
  --data '$CVC=123' \
  --data YYYY=2024 \
  --data MM=12 \
  --data 'TEXT=TEST CARDHOLDER' \
  --data 'ip=185.230.240.201' \
  --data language=en
{
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0,
  "acsUrl": "https://web.rbsuat.com/acs/auth/start.do",
  "paReq": "eJxVUtFu4jAQ/BWU92DHcSCpFle946ryAEd7FKl9OZl4gbSNA05ypP36s0NSWsmSd8br3fGO4brJ3wb/0JRZoSdeMKTeAHVaqEzvJt7j6taPvWsBq71BnP7BtDYoYI5lKXc4yNTEG48kj5KN8jfxOPH5NqZ+kiTURxYlSEMaxtvUE7C8ecCjgK6RsH2GDEgPbUWT7qWuBMj0+GO2EJyNR5QC6SDkaGZTEfGQhRzIGYGWOYpSarUpmr95VwJIS0Na1Loy72LEQyA9gNq8iX1VHa4IqbCshmmRA3EkkIuGZe2i0hZpMiUWH/en39NZs3j5xearHZ+vnk6LD7tPnyZAXAYoWaFglAWUB8mAjq/simIgLQ8yd93tefugM4CD63Hz9eQrA3bQxvrQy+8RYHMoNLo7QD5jeHDGCNgaPNZtXgTkAgC1OmdYiZwGNLB3ewpIv19e/fPO+ZBWdsYvxamWr6rcnNaqWMuQrbF+zqLlXbQ7OHfaJKcqs9NlPDjLcgCIK0M640n3Z2z07S/9Bypv08k=",
  "termUrl": "https://3dsec.berekebank.kz/payment/rest/finish3ds.do?lang=en"
}

ACS серверіне қайта бағыттау

Интернет-дүкен paReq, MD (MDORDER мәнімен бірдей) және termUrl параметрлерін POST әдісімен  acsUrl серверіне жіберуі қажет. Балама ретінде Интернет-дүкен карта иесін ACS эмитентіне дәл сондай қайта бағыттауды орындайтын acsRedirect шлюз әдісін пайдалануы мүмкін.

https://3dsec.berekebank.kz/payment/acsRedirect.do?orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0

Тапсырыс күйін алу және bindingId

curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/getOrderStatusExtended.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0 \
  --data language=en
{
  "errorCode": "0",
  "errorMessage": "Success",
  "orderNumber": "11044",
  "orderStatus": 1,
  "actionCode": 0,
  "actionCodeDescription": "",
  "amount": 2000,
  "currency": "978",
  "date": 1618815949170,
  "orderDescription": "my_second_order",
  "ip": "185.230.240.201",
  "merchantOrderParams": [
    {
      "name": "browser_language_param",
      "value": "en"
    },

    {
      "name": "recurringExpiry",
      "value": "20240101"
    },
    {
      "name": "recurringFrequency",
      "value": "5"
    },

    {
      "name": "browser_os_param",
      "value": "UNKNOWN"
    },
    {
      "name": "user_agent",
      "value": "curl/7.75.0"
    },
    {
      "name": "browser_name_param",
      "value": "DOWNLOAD"
    }
  ],
  "transactionAttributes": [],
  "attributes": [
    {
      "name": "mdOrder",
      "value": "017908cc-57c6-739a-ad25-df0d00a7d8c0"
    }
  ],
  "cardAuthInfo": {
    "maskedPan": "401200**6662",
    "expiration": "202412",
    "cardholderName": "TEST CARDHOLDER",
    "approvalCode": "123456",
    "pan": "401200**6662"
  },
  "bindingInfo": {
    "clientId": "659753456",
    "bindingId": "0162d467-bbfe-77f3-9c21-415c00a7d8c0"
  },
  "authDateTime": 1618816213981,
  "terminalId": "123456",
  "authRefNum": "012851192298",
  "paymentAmountInfo": {
    "paymentState": "APPROVED",
    "approvedAmount": 2000,
    "depositedAmount": 0,
    "refundedAmount": 0
  },
  "bankInfo": {
    "bankCountryCode": "UNKNOWN",
    "bankCountryName": "&ltUnknown&gt"
  }
}

Тауарлар іс жүзінде тиелген кезде қаражатты есептен шығару жүргізіледі

Қаражатты есептен шығару

  1. Интернет-дүкеннің қызметкері интернет-дүкеннің жеке кабинетінде тапсырысты таңдайды.
  2. Интернет-дүкеннің басқару панелі есептен шығаруға сұратымды өзінің серверіне жібереді.
  3. Интернет-дүкеннің сервері deposit.do сұратымын жібереді.
curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/deposit.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data amount=2000 \
  --data orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0 \
  --data language=en
{
  "errorCode": "0",
  "errorMessage": "Success"
}

Бірнеше күннен кейін сатушы бүлінген күйінде жеткізілген тауарлар үшін қаражатты ішінара қайтаруды бастайды.

Қаражатты қайтару

  1. Интернет-дүкеннің қызметкері интернет-дүкеннің жеке кабинетінде тапсырысты таңдайды.
  2. Интернет-дүкеннің басқару панелі қайтаруға сұратымды өзінің серверіне жібереді.
  3. Интернет-дүкеннің сервері refund.do сұратымын жібереді.
curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/refund.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data orderId=017908cc-57c6-739a-ad25-df0d00a7d8c0 \
  --data amount=2000 \
  --data language=en
{
  "errorCode": "0",
  "errorMessage": "Success"
}

Сатушы ай сайынғы тұрақты төлемді іске қосады

Рекуррентті төлем

  1. Интернет-дүкеннің сервері тапсырысты тіркейді, сосын bindingId көрсету арқылы төлемді іске қосады.
  2. Интернет-дүкен төлемнің күйін тексеруі немесе қол қойылған callback-хабарландыруды күтуі мүмкін.

Кейінгі рекуррентті төлемді тіркеу

curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/register.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data currency=978 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=finish.html \
  --data clientId=259753456 \
  --data description=my_first_order \
  --data language=en \
  --data features=AUTO_PAYMENT
{
  "orderId": "01791274-d9ca-7103-b148-7dc000a7d8c0",
  "formUrl": "https://3dsec.berekebank.kz/payment/merchants/rbs/payment_en.html?mdOrder=01791274-d9ca-7103-b148-7dc000a7d8c0"
}

Тапсырысты тіркеуге берген formUrl жауабында елемеуге болады. Рекуррентті төлеу үшін ол қажет емес. Сосын, рекуррентті төлемді аяқтау үшін өзіңіздің серверіңізден paymentOrderBinding.do сұратымын жіберіңіз.

bindingId идентификаторымен рекуррентті төлем

curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/paymentOrderBinding.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data mdOrder=01791274-d9ca-7103-b148-7dc000a7d8c0 \
  --data bindingId=01491394-63a6-7d45-a88f-7bce00a7d8c0 \
  --data ip=1d0d:db8:6:1::77 \
  --data language=en
{
  "redirect": "https://3dsec.berekebank.kz/payment/merchants/rbs/finish.html?orderId=01791274-d9ca-7103-b148-7dc000a7d8c0&lang=en",
  "info": "Your order is proceeded, redirecting...",
  "errorCode": 0
}

Кейінгі рекуррентті төлемнің күйін тексеру

curl --request POST \
  --url https://3dsec.berekebank.kz/payment/rest/getOrderStatusExtended.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data orderId=01791274-d9ca-7103-b148-7dc000a7d8c0 \
  --data language=en
{
  "errorCode": "0",
  "errorMessage": "Success",
  "orderNumber": "11045",
  "orderStatus": 2,
  "actionCode": 0,
  "actionCodeDescription": "",
  "amount": 2000,
  "currency": "978",
  "date": 1618816612879,
  "orderDescription": "my_first_order",
  "ip": "1d0d:db8:6:1::77",
  "merchantOrderParams": [
    {
      "name": "browser_language_param",
      "value": "en"
    },
    {
      "name": "browser_os_param",
      "value": "UNKNOWN"
    },
    {
      "name": "user_agent",
      "value": "curl/7.75.0"
    },
    {
      "name": "browser_name_param",
      "value": "DOWNLOAD"
    }
  ],
  "transactionAttributes": [],
  "attributes": [
    {
      "name": "mdOrder",
      "value": "01791274-d9ca-7103-b148-7dc000a7d8c0"
    }
  ],
  "cardAuthInfo": {
    "maskedPan": "555555**5599",
    "expiration": "202412",
    "cardholderName": "TEST CARDHOLDER",
    "approvalCode": "123456",
    "pan": "555555**5599"
  },
  "bindingInfo": {
    "clientId": "259753456",
    "bindingId": "01491394-63a6-7d45-a88f-7bce00a7d8c0"
  },
  "authDateTime": 1618816705914,
  "terminalId": "123456",
  "authRefNum": "947633173729",
  "paymentAmountInfo": {
    "paymentState": "DEPOSITED",
    "approvedAmount": 2000,
    "depositedAmount": 2000,
    "refundedAmount": 0
  },
  "bankInfo": {
    "bankCountryCode": "UNKNOWN",
    "bankCountryName": "&ltUnknown&gt"
  }
}

Прямые платежи (расширенная схема с 3DS2)

Общее описание

Платежный шлюз поддерживает аутентификацию с помощью протокола 3-D Secure v2 (3DS2), обновленной версии протокола 3-D Secure. Приведенная ниже схема содержит все возможные шаги 3DS2 аутентификации и позволяет настроить процесс интеграции максимально гибко.

Если вы используете платежную страницу на вашей стороне и хотите использовать аутентификацию клиента по протоколу 3DS2, для каждой транзакции вам необходимо отправить в платёжный шлюз запрос на оплату два раза. Отправка первого запроса инициирует процедуру аутентификации по протоколу 3DS2, а отправка второго — продолжает процедуру с данными, полученным от сервера 3DS (дополнительного компонента, который взаимодействует с платежными системами и ACS).

Если клиент после аутентификации перенаправляется на страницу магазина, необходимо завершить платёж, отправив запрос finish3dsVer2Payment.do.

Если вы собираете данные карты на своей стороне и не хотите, чтобы они присутствовали на вашем сервере, вам следует использовать seToken (Self Encrypted Token) — самоподписанный токен, используемый для безопасной передачи данных карты. Если вы используете seToken, соответствие PCI DSS не требуется.

Обратите внимание, что seToken может быть сгенерирован с помощью SDK.

Нажмите здесь, чтобы получить дополнительную информацию о seToken.

Проверка подлинности клиента на ACS

Протокол проверки подлинности 3DS2 в зависимости от настроек ACS банка-эмитента позволяет выполнить проверку подлинности без участия клиента. В этом случае от клиента не потребуется совершать действия для аутентификации, такие как ввод одноразового пароля.

Таким образом, после второго запроса на оплату заказа в зависимости от настроек ACS эмитента возможны два варианта развития событий:

Если у вас нет доступа к Панели управления, создайте свою учетную запись.

Схема интеграции

Direct integration

  1. Клиент выбирает продукт в интернет-магазине и нажимает на кнопку Купить.

  2. Сервер интернет-магазина получает запрос на покупку и открывает платежную страницу.

  3. Покупатель вводит данные своей карты на платежной странице интернет-магазина.

  4. Сервер интернет-магазина собирает данные карты.

  5. Сервер интернет-магазина запрашивает регистрацию заказа, отправляя вызов API register.do. Этот запрос должен содержать параметр amount – сумму платежа в минимальных единицах валюты и параметр returnUrl – адрес, на который будет перенаправлен клиент после успешной оплаты на Шаге 9 (дополнительная информация о перенаправлении доступна здесь). В ответ платежный шлюз отправляет orderId - уникальный номер заказа в системе платежного шлюза.

    Пример запроса на регистрацию заказа:

    curl --request POST \
    --url https://3dsec.berekebank.kz/payment/rest/register.do \
    --header 'content-type: application/x-www-form-urlencoded' \
    --data amount=2000 \
    --data currency=398 \
    --data userName=test_user \
    --data password=test_user_password \
    --data returnUrl=finish.html \
    --data description=my_first_order \
    --data language=ru

    Пример ответа на регистрацию заказа:

    {
    "orderId": "0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0",
    "formUrl": "https://3dsec.berekebank.kz/payment/merchants/pay/payment_en.html?mdOrder=0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0"
    }

    Также вы можете удерживать сумму на счете до списания средств с помощью вызова registerPreAuth.do. Чтобы узнать больше о холдировании и завершении, нажмите здесь.

  6. Начало оплаты. Мерчант передает карточные данные путем отправки первого API запроса paymentorder.do в платежный шлюз (для оплаты также можно использовать paymentOrderBinding.do, google/payment.do или google/paymentDirect.do). Запрос должен содержать параметр MDORDER - уникальный номер заказа в системе платежного шлюза, возвращенный в ответе на запрос register.do.

    Платёжный шлюз проверяет на сервере 3DS возможность проведения аутентификации клиента по протоколу 3DSv2 и отправляет ответ. Если требуется 3DSv2 аутентификация, в ответе, в том числе, возвращаются следующие параметры, относящиеся к 3DSv2:

    • threeDSServerTransId - идентификатор транзакции, присвоенный сервером 3DS,
    • threeDSMethodURLServer - адрес сервера 3DS для сбора данных о браузере,
    • threeDSMethodURL - (необязательно) адрес сервера ACS для сбора данных о браузере,
    • threeDSMethodDataPacked - (необязательно) данные для сбора данных о браузере на ACS.

    Если параметры, относящиеся к 3DSv2, отсутствуют в ответе, шаги 7-9 пропускаются.

    Пример первого запроса оплаты заказа:

    curl --request POST \
    --url https://3dsec.berekebank.kz/payment/rest/paymentorder.do \
    --header 'content-type: application/x-www-form-urlencoded' \
    --data userName=test_user \
    --data password=test_user_password \
    --data MDORDER=0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0 \
    --data '$PAN=4000001111111118' \
    --data '$CVC=123' \
    --data YYYY=2030 \
    --data MM=12 \
    --data 'TEXT=TEST CARDHOLDER' \
    --data 'ip=185.230.240.201' \
    --data language=ru

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

    {
    "errorCode": 0,
    "is3DSVer2": true,
    "threeDSServerTransId": "c300fd79-5e7d-4882-89c7-43458e2538b6",
    "threeDSMethodURL": "https://example.com/acs2/acs/3dsMethod",
    "threeDSMethodURLServer": "example.com/3dsserver/api/v1/client/gather?threeDSServerTransID=c300fd79-5e7d-4882-89c7-43458e2538b6",
    "threeDSMethodDataPacked": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9jb21tb24wMy50c3QucmJzdGVzdC5ydS8zZHNzZXJ2ZXIvYXBpL3YxL2Fjcy9ub3RpZmljYXRpb24_dGhyZWVEU1NlcnZlclRyYW5zSUQ9NTgwMjc0NmUtMzM5My00MGMzLTkyOWEtZGM5NjZlYmYwOGM2IiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI1ODAyNzQ2ZS0zMzkzLTQwYzMtOTI5YS1kYzk2NmViZjA4YzYifQ"
    }

  7. (Выполняется при условии) Мерчант в отдельном "iframe" методом POST вызывает threeDSMethodURLServer, используя значение, полученное из ответа на запрос оплаты заказа. Это позволяет серверу 3DS собрать данные о браузере клиента.

    Пример кода:

    const iframe = document.createElement('iframe');
      iframe.style.cssText = 'width: 0; height: 0; border: none;';
     const html = `
       <form
         id="threeDsMethodTo3DSServer"
         method="post"
         action="${threeDSMethodURLServer as string}"></form>
     `;
     document.body.append(iframe);
     if (iframe.contentWindow) {
       iframe.contentWindow.document.open();
       iframe.contentWindow.document.write(html);
       (iframe.contentWindow.document.forms['threeDsMethodTo3DSServer'] as HTMLFormElement).submit();
     }


  8. (Выполняется при условии) Если в ответе на запрос оплаты заказа пришли параметры threeDSMethodURL и threeDSMethodDataPacked, то мерчант в отдельном "iframe" методом POST вызывает threeDSMethodURL. В этом методе необходимо передать значение, полученное из параметра threeDSMethodDataPacked, полученного в ответе на запрос оплаты заказа. При этом нужно его передать в параметре, который называется threeDSMethodData. Это позволяет ACS собрать данные о браузере клиента.

    Пример кода:

    const iframe = document.createElement('iframe');
     iframe.style.cssText = 'width: 0; height: 0; border: none;';
     const html = `
       <form id="threeDsMethodToACS"
         method="post"
         action="${threeDSMethodURL}"
       >
         <input type="hidden" name="threeDSMethodData" value="${threeDSMethodDataPacked as string}"/>
       </form>
     `;
     document.body.append(iframe);
     if (iframe.contentWindow) {
       iframe.contentWindow.document.open();
       iframe.contentWindow.document.write(html);
       (iframe.contentWindow.document.forms['threeDsMethodToACS'] as HTMLFormElement).submit();
     }


  9. Продолжение оплаты. Мерчант отправляет запрос continue.do, чтобы завершить оплату заказа (или осуществить перевод денежных средств). Запрос должен содержать mdOrder - номер заказа в платежном шлюзе.

    Пример запроса:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/rest/3ds/continue.do \
      --header 'Content-Type: application/x-www-form-urlencoded' \
      --data mdOrder=0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0 \
      --data userName=test-user \
      --data password=test-password

    Платежный шлюз взаимодействует с 3DS сервером и ACS, чтобы выяснить, требуется ли клиенту проходить аутентификацию на ACS, и отправляет ответ на запрос оплаты. Если клиенту требуется проходить аутентификацию на ACS, в ответе возвращается acsUrl – URL для перенаправления на ACS, а также packedCReq – упакованные данные для challenge request. Если не требуется (frictionless аутентификация) – возвращается ответ об успешном завершении оплаты.

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

    {
    "info": "Your order is proceeded, redirecting...",
    "errorCode": 0,
    "acsUrl": "https://bestbank.com/acs2/acs/creq",
    "is3DSVer2": true,
    "packedCReq": "eyJ0aHJlZURTU...6IjA1In0"
    }


  10. Если клиенту не требуется проходить аутентификацию на ACS, переходите на шаг 13.

    Если клиенту требуется проходить аутентификацию на ACS, продавец перенаправляет клиента на ACS. Читайте, как это сделать здесь.

  11. Клиент проходит проверку подлинности и ACS перенаправляет его на страницу магазина.

  12. Если в запросе на оплату был передан параметр threeDSVer2FinishUrl, для завершения транзакции мерчант отправляет в платежный шлюз запрос finish3dsVer2Payment.do. В этом запросе нужно передать параметр threeDSServerTransId - идентификатор транзакции, который был создан сервером 3DS и возвращён на шаге 6.

    Пример запроса:

    curl --request POST \
    --url https://3dsec.berekebank.kz/payment/rest/finish3dsVer2Payment.do \
    --header 'content-type: application/x-www-form-urlencoded' \
    --data threeDSServerTransId=c300fd79-5e7d-4882-89c7-43458e2538b6 \
    --data userName=test_user \
    --data password=test_user_password \

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

    {
    "redirect": "http://test.com?orderId=0179018d-8f96-7fbe-bc2b-4b7e00a7d8c0&lang=en",
    "errorCode": 0,
    "is3DSVer2": true
    }
  13. Платежный шлюз асинхронно отправляет уведомление обратного вызова на сервер интернет-магазина (если эта возможность включена).

  14. (Необязательно) Интернет-магазин отправляет запрос getOrderStatusExtended.do платежному шлюзу, чтобы проверить статус заказа и убедиться, что заказ действительно оплачен. Запрос содержит параметр orderId, полученный на Шагe 5. В ответ платежный шлюз возвращает статус заказа в параметре orderStatus. Статус 2 означает успешный платеж, статус 1 означает успешную предварительную авторизацию для двухэтапных платежей (в этом случае производится холдирование средств). Дополнительно возвращается параметр actionCode - он содержит код ответа процессинга банка. См. список кодов ответа здесь.

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

Дополнительные шаги при получении soft decline после frictionless аутентификации

У вас может быть включена специальная настройка выполнения повторного 3DS2 challenge при получении soft decline после frictionless аутентификации. "Soft decline" - это специальный код ответа, который процессинговый центр банка может получить от ACS и отправить в Платежный шлюз. Он означает, что для транзакции требуется более высокий уровень аутентификации.

Если эта настройка включена (обратитесь в команду поддержки, чтобы это выяснить) и Платежный шлюз получил код "soft decline" от процессингового центра банка после frictionless аутентификации, вам все же необходимо пройти полную (full) 3DS2 аутентификацию. Таким образом, необходимо выполнить следующие дополнительные шаги:

  1. Мерчант в отдельном iframe методом POST вызывает threeDSMethodURLServer, используя значение, полученное из ответа на запрос оплаты заказа. Это позволяет серверу 3DS собрать данные о браузере клиента.

  2. (Необязательный шаг) Если в ответе на запрос оплаты заказа пришли параметры threeDSMethodURL и threeDSMethodDataPacked, то мерчант в отдельном iframe методом POST вызывает threeDSMethodURL. В этом методе необходимо передать значение, полученное из параметра threeDSMethodDataPacked, полученного в ответе на запрос оплаты заказа. При этом нужно его передать в параметре, который называется threeDSMethodData. Это позволяет ACS собрать данные о браузере клиента.

  3. Продолжение оплаты. Мерчант повторно отправляет запрос на оплату, передавая новый параметр threeDSServerTransId. В ответе возвращается acsUrl – URL-адрес для перенаправления на ACS и новый packedCReq – упакованные данные для challenge request. Платежная страница перенаправляется на acsUrl с параметром creq=packedCReq, и клиент выполняет challenge (переход на шаг 11 основной схемы интеграции).
Санаттар:
eCommerce API V1
Санаттар
Іздеу нәтижелері