For any question, we are one click away

Contact us

Съхранени платежни данни и типове транзакции

В този раздел се описват поддържаните типове транзакции по съхранени платежни данни.

Типове съхранени платежни данни

Платежният шлюз позволява създаване и използване на следния тип съхранени платежни данни:

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

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

Типът транзакция трябва да се предава в параметъра 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://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/payment/merchants/pay/finish.html?orderId=59e00106-1f69-76a7-b893-b27c00b4f820&lang=en",
      "info": "Your order is proceeded, redirecting...",
      "errorCode": 0
    }

В резултат ще бъдат създадени съхранени платежни данни за клиента с първоначално указаното clientId. В резултат поръчката ще бъде платена с помощта на съхранените платежни данни с указаното bindingId.

Плащане с обичайни съхранени платежни данни

За плащане на поръчка със създадените обичайни съхранени платежни данни (вж. процеса на създаване по-горе) изпълнете следните стъпки:

  1. Регистрирайте нова поръчка с помощта на заявка register.do със същия параметър clientId, получете в отговор orderId.

  2. Получете списък със съхранени платежни данни чрез заявка getBindings.do със същата стойност clientId и с bindingType=C → получете в отговора bindingId.

    Пример за заявка getBindings.do:

    curl --request POST \
    --url https://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/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://uat.dskbank.bg/payment/client/gather?threeDSServerTransID=efa8e3ce-a4a6-49f8-b422-df781de18119"
    }

В резултат ще бъдат създадени съхранени платежни данни за клиент с първоначално посочения clientId.

Плащане с повтарящи се съхранени платежни данни

За плащане на поръчка със създадените повтарящи се съхранени платежни данни (виж процеса на създаване по-горе) използвайте следната последователност от заявки:

  1. Получете списък със съхранени платежни данни, използвайки заявка getBindings.do със същия параметър clientId и с bindingType=R → получете в отговора bindingId.

    Пример за заявка getBindings.do:

    curl --request POST \
    	--url https://uat.dskbank.bg/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://uat.dskbank.bg/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": "975",
      "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": "975",
    	"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.

Categories:
eCommerceAPI V1
Beta
Categories
Search results