3DS v.1.x
Используется для оплат по картам Visa, Mastercard.
Порядок запросов
Создание заказа
Установка карты
PAReq
PARes
Исполнение транзакции
Создание заказа
Запрос
{
"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