API платёжного шлюза интернет-эквайринга Help

3DS v.1.x

Используется для оплат по картам Visa, Mastercard.

Порядок запросов

  1. Создание заказа

  2. Установка карты

  3. PAReq

  4. PARes

  5. Исполнение транзакции

Создание заказа

Запрос

{ "order": { "typeRid": "Purchase", "amount": 100.00, "currency": "RUB", "title": "3DS Only Название заказа", "description": "3DS Only Описание заказа", "hppRedirectUrl":"https://pgtest.bspb.ru/result" } }

Параметры запроса и ответа

Установка карты

Запрос

{ "token": { "card": { "panBlock": { "data": "479769******0084" }, "expiration": "1226", "entryMode": "ECommerce" } } }

Ответ

{ "order": { "status": "Preparing", "cvv2AuthStatus": "Required", "tdsV1AuthStatus": "Required", "tdsV2AuthStatus": "NotSupportedIss", "otpAutStatus": "IneligibleOrder", "srcToken": { "id": 3603, "paymentMethod": "Card", "role": "Src", "status": "Active", "regTime": "2023-12-20 16:25:42", "displayName": "479769******0084", "card": { "expiration": "1226", "brand": "Visa" } } }, "tdsData": { "paReq": "eJxlU8tO20AU3VfqP1jsk3n5lWgYCRoQWYBQCN0iZ3y....", "acsUrl": "https://acstest.bspb.ru/3ds/" } }

PAReq

Добавьте iframe в браузер держателя карты, либо статически, либо с помощью JavaScript:

let displayBox = document.getElementById('displayBox'); let iframe = document.createElement('iframe'); iframe.name = "pareqIframe"; displayBox.appendChild(iframe);

Добавьте форму, содержащую необходимые элементы:

<form class="" id="pareqForm"> <input type="hidden" name="MD" id="MD"/> <input type="hidden" name="PaReq" id="PaReq"/> <input type="hidden" name="TermUrl" id="TermUrl"/> </form>

Заполните входные данные формы и отправьте их на URL-адрес ACS.

// Получаем ссылку на форму let form = document.getElementById('pareqForm'); // Установка значения в input формы document.getElementById('PaReq').value = '<paReq>'; document.getElementById('TermUrl').value = '<TermUrl>'; // Отправка формы form.action = '<acsURL>'; form.target = 'pareqIframe'; form.method = 'post'; form.submit();

PARes

На указанный в соответствующем поле TermUrl методом POST отправляется PARes в Base64-URL:

PaRes=eJzNV1mvm0oS/itR5tFK2DFEjqVmxyw2GAz2yxVmx+y7/esH+yQn52Yyo9E8T....

Запрос

{ "paRes": "{{PaRes}}" }

Ответ

В случае успешной обработки ответ пустой.

Исполнение транзакции

Запрос

{ "tran": { "phase": "Single", "amount": 100, "authentication": { "cvv2Block": { "data": "564" } } } }

Ответ

{ "tran": { "approvalCode": "066035", "approvedPartial": false, "match": { "tranActionId": "231220-13574626-003yof=", "ridByPmo": "231220502664847998" } } }
Last modified: 09 апреля 2024