По любому вопросу мы в одном клике

Задать вопрос

Связки и типы транзакций

В этом разделе описываются поддерживаемые типы транзакций по связкам.

Типы связок

Платежный шлюз позволяет создавать и использовать следующий тип связок:

Тип транзакций

Транзакции по связкам принадлежат к одной из двух групп в зависимости от инициатора транзакции:

Тип транзакции должен передаваться в параметре tii (Transaction Intitiator Indicator, Идентификатор инициатора транзации) платежных API-запросов. Возможные значения параметра tii:

Значение tii Описание Тип транзакции Инициатор транзакции Данные карты для транзакции Сохранение данных карты после транзакции Примечание
Пусто Обычный Покупатель Вводится покупателем Нет Транзакция электронной коммерции без сохранения связки.
CI Инициирующий - Обычный (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
F Внеплановый платеж (CIT) Последующая Покупатель Клиент выбирает карту вместо ручного ввода Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку.
U Внеплановый платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Транзакция электронной коммерции, использующая ранее сохраненную обычную связку. Используется только для одностадийных платежей.
RI Инициирующий - Рекурентные (CIT) Инициирующая Покупатель Вводится покупателем Да Транзакция электронной коммерции с сохранением связки.
R Рекуррентный платеж (MIT) Последующая Продавец Нет ручного ввода, продавец передает данные Нет Рекуррентная операция, использующая сохраненную связку. Используется только для одностадийных платежей.

Первоначальная транзакция, которая создает связку, может быть выполнена как в рамках прямой интеграции, так и при интеграции через редирект. Тип интеграции влияет на то, какие требования будут предъявляться в части соответствия PCI DSS. Для дальнейшей оплаты по связке соответствие PCI DSS уже не требуется, так как данные карты не передаются.

Управление связками через API

Ниже приведены примеры создания и использования разных типов связок через API с использованием собственной платежной страницы мерчанта:

Обычные связки

Создание обычной связки

Чтобы создать обычную связку, выполните следующие шаги:

  1. Выполните запрос register.do с параметром clientId, получите в ответ orderId и formUrl.

    Пример запроса register.do для создания обычной связки:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/rest/register.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data amount=123456 \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderNumber=1234567890ABCDEF \
      --data returnUrl=https://mybestmerchantreturnurl.com \
      --data failUrl=https://mybestmerchantfailurl.com \
      --data email=test@test.com \
      --data clientId=259753456 \
      --data features=FORCE_CREATE_BINDING \
      --data language=en
    {
      "orderId": "01491d0b-c848-7dd6-a20d-e96900a7d8c0",
      "formUrl": "https://3dsec.berekebank.kz/payment/payment/merchants/ecom/payment_en.html?mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0"
    }
  2. Передайте полученное значение orderId в параметре MDORDER запроса paymentorder.do.

    Пример запроса paymentorder.do:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/rest/paymentorder.do \
      --header 'Content-Type: application/x-www-form-urlencoded' \
      --data '$CVC=123' \
      --data '$EXPIRY=203012' \
      --data '$PAN=4000001111111118' \
      --data 'TEXT=TEST CARDHOLDER' \
      --data MDORDER=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data userName=test_user \
      --data password=test_user_password
    {
      "redirect": "https://3dsec.berekebank.kz/payment/merchants/pay/finish.html?orderId=59e00106-1f69-76a7-b893-b27c00b4f820&lang=en",
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0
    }

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

Оплата обычной cвязкой

Для оплаты заказа созданной обычной связкой (см. процесс создания выше) выполните следующие шаги:

  1. Зарегистрируйте новый заказ с помощью запроса register.do с тем же параметром clientId, получите в ответ orderId.
  2. Получите список cвязок с помощью запроса getBindings.do с тем же значением clientId и c bindingType=C → получите в ответе bindingId.

    Пример запроса getBindings.do:

    curl --request POST \
    --url https://3dsec.berekebank.kz/payment/rest/getBindings.do \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data userName=test_user \
    --data password=test_user_password \
    --data clientId=259753456 \
    --data bindingType=C
    {
        "errorCode":"0",
        "errorMessage":"Success",
        "bindings": [
            {
                    "bindingId": "b83317e0-1679-7d85-b375-a63200b4f820",
                    "maskedPan": "411111**1111",
                    "expiryDate": "203412",
                    "paymentWay": "TOKEN_PAY",
                    "paymentSystem": "CARD",
                    "displayLabel": "XXXXXXXXXXXX1111",
                    "bindingCategory": "COMMON"
                }
            ]
         }
  3. Выполните запрос paymentOrderBinding.do. Передайте значение orderId (полученное на Шаге 1) в параметре mdOrder, а также передайте полученный bindingId. Доступные значения tii: F, U.

    Пример запроса paymentOrderBinding.do:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/rest/paymentOrderBinding.do \
      --header 'Content-Type: application/x-www-form-urlencoded' \
      --data mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data ip=127.0.0.1 \
      --data cvc=123 \
      --data bindingId=b83317e0-1679-7d85-b375-a63200b4f820 \
      --data userName=test_user \
      --data password=test_user_password \
      --data language=en \
      --data tii=F
    {
      "redirect": "https://3dsec.berekebank.kz/payment/merchants/pay/finish.html?orderId=24c3d392-4c60-7f0b-9ff5-b00100b4f820&lang=en",
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0
    }

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

Рекуррентные связки

Создание рекуррентной связки

Чтобы создать рекуррентную связку, выполните следующие шаги:

  1. Выполните запрос register.do с параметром clientId, получите в ответ orderId и formUrl

    Пример запроса register.do:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/rest/register.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data amount=123456 \
      --data userName=test_user \
      --data password=test_user_password \
      --data orderNumber=1234567890ABCDEF \
      --data returnUrl=https://mybestmerchantreturnurl.com \
      --data failUrl=https://mybestmerchantfailurl.com \
      --data email=test@test.com \
      --data clientId=259753456 \
      --data features=FORCE_CREATE_BINDING \
      --data language=en \'
    {
      "orderId": "01491d0b-c848-7dd6-a20d-e96900a7d8c0",
      "formUrl": "https://3dsec.berekebank.kz/payment/payment/merchants/ecom/payment_en.html?mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0"
    }
  2. Передайте полученное значение orderId в параметре MDORDER запроса paymentorder.do. Необходимо передать дополнительные параметры recurringFrequency и recurringExpiry (верификация не проводится, но эта информация используется банком, выпустившим карту).

    Пример запроса paymentorder.do:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/rest/paymentorder.do \
      --header 'Content-Type: application/x-www-form-urlencoded' \
      --data '$CVC=123' \
      --data '$EXPIRY=203012' \
      --data '$PAN=4000001111111118' \
      --data 'TEXT=TEST CARDHOLDER' \
      --data MDORDER=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
      --data userName=test_user \
      --data password=test_user_password \
      --data language=en \
      --data 'jsonParams={"recurringFrequency": "1", "recurringExpiry":"20261231"}'
    {
      "errorCode": 0,
      "is3DSVer2": true,
      "threeDSServerTransId": "efa8e3ce-a4a6-49f8-b422-df781de18119",
      "threeDSMethodURLServer": "https://3dsec.berekebank.kz/payment/client/gather?threeDSServerTransID=efa8e3ce-a4a6-49f8-b422-df781de18119"
    }

В результате будет создана связка для клиента с изначально указанным clientId.

Оплата рекуррентной cвязкой

Для оплаты заказа созданной рекуррентной связкой (см. процесс создания выше) используйте следующую последовательность запросов:

  1. Получите список связок, используя запрос getBindings.do с тем же параметром clientId и с bindingType=R → получите в ответеbindingId.

    Пример запроса getBindings.do:

    curl --request POST \
    --url https://3dsec.berekebank.kz/payment/rest/getBindings.do \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data userName=test_user \
    --data password=test_user_password \
    --data clientId=259753456 \
    --data bindingType=R
    {
    "errorCode":"0",
    "errorMessage":"Success",
    "bindings": [
        {
                "bindingId": "44779116-41a5-7798-b072-c0a30760e2b0",
                "maskedPan": "411111**1111",
                "expiryDate": "203412",
                "paymentWay": "TOKEN_PAY",
                "paymentSystem": "CARD",
                "displayLabel": "XXXXXXXXXXXX1111",
                "bindingCategory": "RECURRENT"
            }
        ]
     }
  2. Выполните запрос recurrentPayment.do с полученным bindingId, чтобы зарегистрировать и оплатить заказ.

    Пример запроса recurrentPayment.do:

    curl --request POST \
      --url https://3dsec.berekebank.kz/payment/recurrentPayment.do \
      --header 'Content-Type: application/json' \
      --data '{
      "userName": "test_user",
      "password": "test_user_password",
      "orderNumber": "UAF-203974-DE-12
      "language": "EN",
      "bindingId": "44779116-41a5-7798-b072-c0a30760e2b0",
      "amount": 12300,
      "currency": "398",
      "description" : "Test description",
      "additionalParameters": {
        "firstParamName": "firstParamValue",
        "secondParamName": "secondParamValue"
      }
     }'
    {
      "success": true,
      "data": {
        "orderId": "9adaa8f0-3b5a-742f-80b4-172200b40dc0"
      },
      "orderStatus": {
        "errorCode": "0",
        "orderNumber": "9003",
        "orderStatus": 2,
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 12300,
        "currency": "398",
        "date": 1618338779501,
        "orderDescription": "Test description",
        "merchantOrderParams": [
          {
            "name": "firstParamName",
            "value": "firstParamValue"
          },
          {
            "name": "secondParamName",
            "value": "secondParamValue"
          }
        ],
        "transactionAttributes": [],
        "attributes": [
          {
            "name": "mdOrder",
            "value": "9adaa8f0-3b5a-742f-80b4-172200b40dc0"
          }
        ],
        "cardAuthInfo": {
          "maskedPan": "400000**1118",
          "expiration": "202612",
          "cardholderName": "TEST CARDHOLDER",
          "approvalCode": "123456",
          "paymentSystem": "VISA",
          "product": "visa-product",
          "secureAuthInfo": {
            "eci": 7
          },
          "pan": "400000**1118"
        },
        "bindingInfo": {
          "clientId": "test-client",
          "bindingId": "3080a436-02a0-75c2-a2ce-41be00b40dc0"
        },
        "authDateTime": 1618338779790,
        "authRefNum": "111111111111",
        "paymentAmountInfo": {
          "paymentState": "DEPOSITED",
          "approvedAmount": 12300,
          "depositedAmount": 12300,
          "refundedAmount": 0,
          "totalAmount": 12300
        },
        "bankInfo": {
          "bankName": "ES TEST BANK",
          "bankCountryCode": "ES",
          "bankCountryName": "Spain"
        },
        "chargeback": false,
        "operations": [
          {
            "amount": 12300,
            "cardHolder": "TEST CARDHOLDER",
            "authCode": "123456"
          }
        ]
      }
    }

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

Категории:
eCommerce API V1
Категории
Результаты поиска