Оплата картой для клиентов PCI DSS

Прежде чем вы получите доступ к платежной платформе, вы должны предоставить следующее данные администратору платежной платформы:

— список ваших IP-адресов, с которых будут направляться запросы на платежную платформу;
callback ulr — URL-адрес, на который будет отправляться уведомления о результатах обработки Вашего запроса через платежную платформу;
— контактный E-mail разработчика.

Примечание!callback ulr должен быть обязателен если вы работаете в асинхронном режиме и не должен превышать 255 символов.

После регистрации Вас как мерчанта, Вам будет направлена следующая информация.
Параметр Описание
CLIENT_KEY Ключ идентификации мерчанта (участвует в формировании запроса)
CLIENT_PASS Пароль мерчанта (участвует в формировании подписи)
PAYMENT_URL URL-адрес для запроса платежной платформы
Краткое описание взаимодействия с платежной платформой

Для транзакций вы должны отправлять POST-запрос сервер на сервер HTTPS с помощью полей, перечисленные ниже, на PAYMENT_URL. В ответ платежная платформа вернет строку JSON (http://json.org/).

Если мерчант поддерживает 3D-Secure, тогда платежная платформа вернет ссылку на сервер управления безопасностью для выполнения 3D-Secure проверку. В этом случае вам необходимо перенаправить держателя карты на эту ссылку. Если есть иные параметры, которые отдаются ссылкой необходимо перенаправить владельца карты по этой ссылке вместе с параметрами, используя метод передачи данных, указанный в том же самом результате.

В случае 3D-Secure после проверки на стороне сервера 3D-Secure Владелец кредитной карты вернется на ваш сайт, используя ссылку, указанную в запросе и платежная система вернет результат обработки транзакции на указанный CALLBACK URL.

Платежная система поддерживает для основных типа операций: Система единого сообщения (SMS) и Двойная система сообщений (DMS):

1) SMS представляет собой транзакцию SALE. Эта операция обычно используется для немедленных платежей.

2) DMS представлена транзакциями AUTH и CAPTURE:

— AUTH используется для авторизации без списания. Эта операция использовалась для холдирования средств на карточном счете (Например, для проверки действительности карты).

— CAPTURE используется для завершение транзакций SALE и AUTH.

Если вы хотите совершить транзакцию AUTH, вам нужно использовать параметр auth со значением Y.

Если вы хотите отправить платеж на определенный канал (в случае подключенных двух и более банковских терминалов, вам необходимо использовать Channel_id, указанный в настройках вашей учетной записи платежной платформы.

Таблица параметров
Параметр Описание Значение параметра Обязательно
action SALE
async Синхронный или асинхронный режим «Y» или «N» (по умолчанию «N»)
client_key Уникальный клиентский ключ выданный при регистрации мерчанта в системе
channel_id Платежный канал (Sub-account) Строка 16 символов
order_id Номер транзакции в системе мерчанта Строка до 255 символов
order_amount Сумма транзакции Формат «Number» – Х.ХХ (разделитель «.», два знака после разделителя, без ведущих нулей)
order_currency Валюта операции 3-х буквенный код
order_description Описание транзакции Строка до 1024 символов
card_number Номер карты плательщика
card_exp_month Месяц срока окончания действия карты 2-х символьный код в формате «ХХ»
card_exp_year Год срока окончания действия карты 4-х символьный код в формате «ХХХХ»
card_cvv2 CVV/CVC2 проверочный код карты 3-4 символа
payer_first_name Имя плательщика Строка до 32 символов
payer_last_name Фамилия плательщика Строка до 32 символов
payer_address Адрес плательщика Строка до 255 символов
payer_country Страна плательщика 2-х символьный код
payer_state Штат плательщика 2-х символьный код (или «NA» для страны без штатов)
payer_city Город плательщика Строка до 32 символов
payer_zip Индекс плательщика Строка до 32 символов
payer_email E-mail плательщика Строка до 256 символов
payer_phone Телефон плательщика Строка до 32 символов
payer_ip IP-адрес плательщика Передается в формате «ХХХ.ХХХ.ХХХ.ХХХ»
term_url_3ds * URL-адрес, на который должен быть перенаправлен плательщик после прохождение 3DS проверки Строка до 1024 символов
recurring_init Определение транзакции с возможностью последующего рекарингового платежа «Y» или «N» (по умолчанию «N»)
auth Показатель того, что транзакция должна быть только авторизированна, но не подтверждена «Y» или «N» (по умолчанию «N»)
hash ** Специальная подпись валидности запроса в платежную систему

* — если Ваша учетная запись поддерживает 3DS проверку, этот параметр должен передается.

**md5(strtoupper(strrev(email).CLIENT_PASS.strrev(substr(card_number,0,6).substr(card_number,-4))))

Пример формирования запроса на РНР:
Запрос

Пример отправки запроса:
Запрос

Параметры ответа:

В ответ Вы получите JSON строку с результатом транзакции. Если Ваш аккаунт поддерживает 3DS проверку результат транзакции будет направлен на на Ваш callback url.

Синхронный режим

Ответ по успешной транзакции:
Параметр Описание
action SALE
result SUCCESS
status PENDING/SETTLED; статус PENDING только когда было указано «auth=Y»
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC
descriptor Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов.
recurring_token Токен (получаете, если Ваша система поддерживает последующие платежи и был передан параметр «recurring_init»)
Ответ по не успешной транзакции:
Параметр Описание
action SALE
result DECLINED
status DECLINED
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC
decline_reason Причина, по которой транзакция была отклонена
Ответ по 3DS транзакции:
Параметр Описание
action SALE
result SUCCESS
status 3DS
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC
redirect_url URL, на который должен быть перенаправлен плательщик
redirect_params Массив определенных параметров 3DS
redirect_method Метод передачи параметров (POST/GET)

Асинхронный режим

Для Асинхронного режима следует в запросе на списание отправлять параметр async=Y

Параметр Описание
action SALE
result ACCEPTED
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC

Параметры ответа

Ответ по успешной транзакции
Параметр Описание
action SALE
result SUCCESS
status PENDING/SETTLED
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC
descriptor Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов.
auth_code Код авторизации от банка
recurring_token Токен (получаете, если Ваша система поддерживает последующие платежи и был передан параметр «recurring_init»)
hash *

*md5(strtoupper(strrev(email).CLIENT_PASS.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Ответ по не успешной транзакции
Параметр Описание
action SALE
result DECLINED
status DECLINED
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC
decline_reason Причина, по которой транзакция была отклонена
hash **

**md5(strtoupper(strrev(email).CLIENT_PASS.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Ответ по 3DS транзакции:
Параметр Описание
action SALE
result REDIRECT
status 3DS
order_id ID транзакции в системе мерчанта
trans_id ID транзакции в платежной системе
trans_date Дата транзакции в платежной системе. Время UTC
redirect_url URL, на который должен быть перенаправлен плательщик
redirect_params Строка параметров
redirect_method Метод передачи параметров (POST/GET)
hash *

*md5(strtoupper(strrev(email).CLIENT_PASS.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Пример простого curl запроса:

curl -d «action=SALE&client_key=ZPR2ZH2J2U&order_id=ORDER-
12345&order_amount=1.99&order_currency=USD&order_description=Product&card_number
=4111111111111111&card_exp_month=01&card_exp_year=2020&card_cvv2=000&payer_first
_name=John&payer_last_name=Doe&payer_address=Big
Street&payer_country=US&payer_state=CA&payer_city=City&payer_zip=123456&payer_em
[email protected]&payer_phone=199999999&payer_ip=123.123.123.123&term_url_3ds=
http://client.site.com/return.php&recurring_init=Y&hash=ae1a1f193949508bcf19cff4
302d69bc» https://test.apiurl.com -k

Простой ответ (синхронный режим):

Ответ по успешной транзакции:

{«action»:»SALE»,»result»:»SUCCESS»,»status»:»SETTLED»,»trans_id»:»03346-89217-70541″,»order_id»:»ORDER-12345″,»descriptor»:»test»,»trans_date»:»2012-04-03 16:02:01″,»recurring_token»:»a1a6de416405ada72bb47a49176471dc»}

Ответ по неуспешной транзакции:

{«action»:»SALE»,»result»:»DECLINED»,»status»:»DECLINED»,»trans_id»:»03346-89214-54141″,»order_id»:»ORDER-12345″,»trans_date»:»2012-04-03 16:02:01″,»decline_reason»:»Declined by processing»}

Ответ по транзакции с поддержкой 3D-Secure:

{«action»:»SALE»,»result»:»REDIRECT»,»status»:»3DS»,»trans_id»:»03346-89225-87891″,»order_id»:»ORDER-12345″,»trans_date»:»2012-04-03 16:02:02″,»redirect_url»:»https://server_3ds.com/3ds.php»,»redirect_params»:{«PaReq»:»bc5865698ae46de4eba4c51f0359a714″,»MD»:»111111111111111111111″,»TermUrl»:»https://term_url.com/3ds/67c14e5?trans_id=03346-89225-87891&hash=8b98db60fb3c24c14a6d7075241da38b»},»redirect_method»:»POST»}

В случае ошибки по запросу:

{«result»:»ERROR»,»error_message»:»Error description»}

Простой ответ (асинхронный режим):

Ответ по успешной транзакции:

{«action»:»SALE»,»result»:»ACCEPTED»,»trans_id»:»03346-89211-86461″,»order_id»:»ORDER-12345″,»trans_date»:»2012-04-03 16:02:01″}

В случае ошибки по запросу:

{«result»:»ERROR»,»error_message»:»Error description»}