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

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

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

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

Типы связок

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

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

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

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

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

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

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

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

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

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

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

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

    curl --request POST \
      --url https://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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://abby.rbsuat.com/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": "933",
      "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": "933",
    	"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.

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