3.2. Операции для сервис-провайдеров

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

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

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

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

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

Операция PURCHASEONMERCHANT

Production url: https://pay.procard.ua/api/

Для оплаты на платежной странице торговца необходимо отправить 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.

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

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

Пример HTML страницы для перенаправления на ACS эмитента

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <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

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

 

 

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

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

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

1 2 3 4 5 <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 верификации

Production url: https://pay.procard.ua/api/

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

Параметр

Описание

Значение

operation

Тип операции

COMPLETE3DS

merchant_id

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

 

transaction_key

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

 

d3ds_md

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

 

d3ds_pares

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

 

d3ds_cres

Сообщение полученное после редиректа с сервера ACS2 (для 3ds1 - пусто; для 3ds2 - обязательно)

 

signature

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

 

 

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

 

 

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

 

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

Параметр

Описание

Значение

status

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

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

code

Код ответа

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

order_id

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

 

amount

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

 

fee

Комиссия

 

currency

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

 

card_pan

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

 

transaction_id

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

 

signature