На этой странице приведено описание операций для сервис-провайдеров cистемы диспетчеризации Procard.Pay для сервис-провайдеров

К сервис-провайдерам относятся торговцы имеющие статус PSP, DWO или ISO в МПС Visa и/или MasterCard и имеющими сертификат соответствия по стандарту информационной безопасности PCI DSS, который позволяет торговцу хранить карточные данные клиентов на своей стороне.

К особым операциям cистемы диспетчеризации Procard.Pay для сервис-провайдеров относятся:

  • PurchaseOnMerchant – операция покупки с использованием карты на странице сервис-провайдера

  • Complete3DS – операция завершения проверки карты по технологии 3DS

Операция PurchaseOnMerchant

Test url: https://pay-test.procard-ltd.com/api (production url клиент получает в проектном журнале)

Для оплаты на платежной странице торговца необходимо отправить POST запрос со следующими данными:


На этой странице:

Параметр

Описание

Значение

operation

Тип операции

PurchaseOnMerchant

merchant_id

Идентификатор торговца

amount

Сумма операции.

Пример 500.00

order_id

Уникальный номер операции на стороне торговца. Если операция дублируется - торговец получает ошибку.

currency_iso

Валюта платежа.

UAH

description

Назначение платежа. Выводится на платежной странице, при вводе платежных реквизитов. Отображается в выписке по счету и реестрах

add_params

Массив с дополнительными параметрами. Дополнительные параметры потом возвращаются мерчанту в CALLBACK вызове

token

Токен для списания с карты без передачи реквизитов карты

card_num

Номер карты

card_exp_month

Срок действия карты MM

card_exp_year

Срок действия карты YY

card_cvv

CVV2 код, в случае операции без CVV необходимо указать -1

card_holder

Владелец карты.

Не обязательное поле

phone

Номер телефона клиента.

Не обязательное поле

payment_type

Тип платежа.

Не обязательный
1 – Покупка (Purchase),
2 – Предавторизация (Hold)
По умолчанию – 1

secure_type

Тип прохождения безопасности транзакции

Может принимать следующие значения:

Auto

3DS

1

Non3DS

2

callback_url

URL на который придёт информация о результате выполнения платежа

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе SHA-512 контрольная подпись с использованием private_key торговца.

Строка, подлежащая SHA-512, генерируется путем конкатенации параметров merchant_id, order_id, amount, currency_iso, description разделенных “;” (точка с запятой) в кодировке UTF-8.

Порядок параметров при конкатенации важен!

В ответ приходит объект в формате JSON со следующими параметрами:

Параметр

Описание

Значение

status

Статус платежа

справочник “Статусы платежа”

code

Код ответа

Справочник “Коды ответов”

order_id

Уникальный номер заказа в системе торговца

amount

Сумма платежа

fee

Комиссия

currency

Валюта платежа

token

Токен для последующих оплат. Токен вернется в случае, если платеж успешен

d3_acs_url

URL acs сервера на который необходимо отправить пользователя для верификации

d3_md

Уникальный идентификатор который необходимо передать на ACS сервер для 3ds1

d3_pareq

Запрос который необходимо передать на ACS сервер для 3ds1

d3_creq

Запрос который необходимо передать на ACS сервер для 3ds2

transaction_key

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

transaction_id

Идентификатор транзакции

signature

Проверка 3DS

Если в ответе code пришло значение 2002 необходимо провести проверку 3DS2.

Описание параметров которые необходимо подставить в HTML

%term_url% - значение Refinement.AcsURL полученное после выполнения административной операции PurchaseOnMerchant.

%d3_creq% - значение d3_creq полученное после выполнения административной операции PurchaseOnMerchant.

<html><body topmargin="50%" bottommargin="50%" onLoad="document.getElementById('pareq_form').submit();">
<form method="post" name="pareq_form" id="pareq_form" action="%term_url%">
<input name="creq" type="hidden" value="%ACS_CREQ%"/>
<input type="submit" name="send" value="send"/>
<noscript>
<br/><br/>
<center>
<h1>Processing your 3-D Secure Transaction</h1>
<h2>JavaScript is currently disabled or is not supported by your browser.<br/></h2>
<h3>Please click <b> Submit </b> to continue the processing of your 3-D Secure transaction.</h3>
<input type="submit" />
</center>
</noscript>
</form>
</body>
</html>

Описание параметров которые необходимо подставить в HTML

%term_url% - значение Refinement.AcsURL полученное после выполнения административной операции PurchaseOnMerchant.

%d3_creq% - значение d3_creq полученное после выполнения административной операции PurchaseOnMerchant.

Пример ответа получаемого в POST-запросе от ACS

CRes=eyJ0aHJlZURTU2VydmVyVHJhbn[... skip ...]yI6Ik4ifQ==

Если в ответе code пришло значение 2001 необходимо провести проверку 3DS1.

Для проверки 3ds1 необходимо методом POST отправить форму с параметрами d3_md, d3_pareq, term_url на d3_acs_url.

term_url - url на который вернется результат проверки 3DS.

<form name="MPIform" action='${d3_acs_url}' method="POST">
<input type="hidden" name="PaReq" value='${d3_pareq }'>
<input type="hidden" name="MD" value='${d3_md }'>
<input type="hidden" name="TermUrl" value='${term_url}'>
</form>

После прохождения клиентом аутентификации и редиректа на TempUrl с результатом, полученным от эмитента, мерчант направляет запрос Complete3DS.

Операция Complete3DS – подтверждение 3DS верификации

Test url: https://pay-test.procard-ltd.com/api (production url клиент получает в проектном журнале)

Для получения подтверждения по 3DS верификации необходимо отправить POST запрос со следующими данными:

Параметр

Описание

Значение

operation

Тип операции

Complete3DS

merchant_id

Идентификатор торговца

transaction_key

Ключ транзакции

d3ds_md

Идентификатор полученный после редиректа с сервера ACS1 (для 3ds1 - обязательно; для 3ds2 - пусто)

d3ds_pares

Сообщение полученное после редиректа с сервера ACS1 (для 3ds1 - обязательно; для 3ds2 - для 3ds v.2.x значение d3ds_cres необходимо подставить в поле d3ds_pares)

d3ds_cres

Сообщение полученное после редиректа с сервера ACS2 (для 3ds v.2.x значение d3ds_cres необходимо подставить в поле d3ds_pares)

signature

В целях подтверждения валидности данных должна быть сгенерирована и передана в запросе SHA-512 контрольная подпись с использованием private_key торговца.

Строка, подлежащая SHA-512, генерируется путем конкатенации параметров разделенных “;” (точка с запятой) в кодировке UTF-8: merchant_id, transaction_key, d3ds_md, d3ds_pares - для 3ds v.2.x значение d3ds_cres необходимо подставить в поле d3ds_pares;

Порядок параметров при конкатенации важен!

В ответ приходит объект в формате JSON со следующими параметрами:

Параметр

Описание

Значение

status

Статус платежа

Справочник “Статусы платежа”

code

Код ответа

Справочник “Коды ответов”

order_id

Уникальный номер заказа в системе торговца

amount

Сумма платежа

fee

Комиссия

currency

Валюта платежа

card_pan

Маскированный номер карты

transaction_id

Идентификатор транзакции

signature