3.2. Операции для сервис-провайдеров
На этой странице приведено описание операций для сервис-провайдеров 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 | Тип платежа. | Не обязательный |
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 |
|
|
Copyright © 2015-2021 PROCARD