Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Содержание

Зміст

Требования к сайту

Expand
titlePCI DSS или PCI Compliance

Наличие у мерчанта PCI DSS сертификата или PCI Compliance (сканирования).

Note

Согласуйте первоначально с вашим менеджером PSP Platon.

Expand
titleSSL сертификат

У вашего сайта должен быть SSL сертификат.

Для проверки валидности и срока действия вашего SSL сертификата рекомендуем воспользоваться сервисом по ссылке.

Expand
titleЛоготипы платежных систем и PSP Platon

В футере вашего сайта необходимо разместить логотипы платежных систем и PSP Platon.

Скачайте подходящие под стиль вашего сайта варианты логотипов.

Include PageЛоготипы для размещенияЛоготипы для размещения
Expand
titleTLS 1.2

Необходима поддержка протокола TLS не ниже версии 1.2

API параметры №1

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/p2p-debit/

Параметр

Значение

Описание

Особенности

action

Status
colourGreen
titleОБЯЗАТЕЛЬНО

DEBIT_PREPARE

Код платежного метода

Table of Contents
minLevel

Описание

Данный метод позволяет получить преимущество при погашении клиентами кредитных организаций используя пониженный тариф по Дебету.

Cо стороны плательщика проводится обычная оплата с вводом всех карточных данных

1
maxLevel2
indent0px
absoluteUrltrue
stylecircle


Опис

Оплата по технології C2A дебет з обробкою карткових даних.

Info

Обов'язкова наявність у мерчанта PCI DSS.

Tip

Увага! Цей запит виконується в декілька етапів:

  1. Ініциалізація (API запит №1)

  2. Підтвердження (API запит №2)

  3. Редірект платника на 3DS


Вимоги

Include Page
Вимоги до сайтів та додатків
Вимоги до сайтів та додатків

API параметри №1

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/p2p-debit/

Параметр

Значення

Опис

Особливості

action

Status
colourGreen
titleОбов'язковий

DEBIT_PREPARE

Код платіжного методу

 

async

Status
colourYellow
titleне

ОБЯЗАТЕЛЬНО

Обов'язковий

Y
N

Включить асинхронный режим

В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение "N"

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

Стандартне значення "N" можна не передавати

channel_id

Status
colourYellow
titleне

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Дополнительный платежный

Додатковий платіжний канал

Позволяет отправить платежи на другой банковский терминал

Відправка коштів на окремий платіжний термінал

client_key

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

API ключ мерчанта

Ключ

предоставляется

надається на

почту

пошту мерчанту

order_id

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

ID

платежа

оплати в

системе

системі мерчанта

Max 32

символа

символи

order_amount

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

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

Сума оплати

Tip
Верный вариант

Вірний варіант

1000.00

Warning
Неверные варианты

Невалідні варіанти

1000
1000.0
1,000.0
1,000.00

order_currency

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

UAH

Валюта

платежа

оплати

Info

Оплата

возможна только в национальной валюте гривне

можлива лише в національній валюті гривні

order_description

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Описание платежа

Опис оплати

Note

Для

кириллических символов необходимо использовать

криличних символів треба використовувати формат UTF-8

Max 255 символов

payer_first_name

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Имя плательщика

Ім'я платника

Max 32

символа

символів без

пробелов

пробілів

Укажите

Вкажіть "NA"

, если нет данных

якщо немає даних

payer_last_name

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Фамилия плательщика

Прізвище платника

Max 32

символа

символів без

пробелов

пробілів

Укажите

Вкажіть "NA"

, если нет данных

якщо немає даних

payer_address

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Адрес плательщика

Адреса платника

Max 256

символа

символів

Укажите

Вкажіть "NA"

, если нет данных

якщо немає даних

payer_country

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Страна плательщика

Країна платника

Стандарт ISO 3166-1 alpha-2
В

формате

форматі "ХХ"
2 символа


Укажите "NA", если нет данных

payer_state

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Штат

плательщика NoteОбязательный параметр для стран US, CA, AU

платника

Стандарт ISO 3166-2
В

формате

форматі "ХХ"
2 символа


Укажите "NA", если нет данных

payer_city

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Город плательщика

Місто платника

Max 32

символа

символи

Укажите

Вкажіть "NA"

, если нет данных

якщо немає даних

payer_zip

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Почтовый индекс плательщика

Поштовий індекс платника

Max 32

символа
Укажите "NA", если нет данных

символи

payer_email

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Почта плательщика

Пошта платника

Info
Обязательно валидная почта.

Обов'язково валідна пошта

Info
Отсутствие пробелов

Без пробілів.

Max 255 символа

payer_phone

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

String

Номер

телефона плательщика

телефону платника

Info
Обязательный

Обов'язковий формат

телефона

телефону 380…

payer_ip

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

IP-

адрес плательщика

адреса платника

В

формате

форматі "ХХХ.ХХХ.ХХХ.ХХХ"

Note

IPv6 на

данный

даний момент не

поддерживается

підтримується

card_number

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

Полный

Повний номер

карты

картки

В

формате

форматі "ХХХХХХХХХХХХХХХХ"
16

символов

символів

card_exp_month

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

Месяц окончания срока действия карты

Місяць терміну дії картки

В

формате

форматі "ХХ"
2 символа

card_exp_year

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

Год окончания срока действия карты

Рік терміну дії картки

В

формате

форматі "ХХХХ"
4 символа

card_cvv2

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Number

Проверочный

CVV код

на карте

В

формате

форматі "ХХХ"
3 символа

req_token

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

Y
N

Для

получения

формування card_token

По умолчанию

Стандартне значення "N"

term_url_3ds

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Ссылка по которой будет отправлен клиент после успешной оплаты при прохождении

Посилання по якому буде відправлено платника після успішної / невдалої спроби оплати після 3DS

Max 255

символов

символів

signature

itn

Status
colourYellow
titleне Обов'язковий

String

ІПН платника

signature

Status
colourGreen
title

ОБЯЗАТЕЛЬНО

Обов'язковий

String

Контрольная подпись

Контрольний підпис

Code Block
languagephp
sha1(
  $pass.
  strtolower(
    implode(
      '',
      $action.
      $client_key.
      $order_id.
      $order_amount.
      $order_currency.
      $order_description.
      $card_number.
      $card_exp_month.
      $card_exp_year.
      $card_cvv2.
      $payer_first_name.
      $payer_last_name.
      $payer_phone.
      $payer_address.
      $payer_country.
      $payer_state.
      $payer_city.
      $payer_zip.
      $payer_email.
      $payer_ip.
      $term_url_3ds.
    )
  )
)
Note

Значення в hash мають відповідати послідовності полів в самому запиті.


API

параметры

параметри №2

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/p2p-debit/

ExpandtitleПример запроса на PHP

Параметр

Значение

Значення

Описание

Опис

Особенности

Особливості

action

Status
colourGreen
title

Обязательно

Обов'язковий

DEBIT_RUN

Код платежного

метода

методу

 

client_key

Status
colourGreen
title

Обязательно

Обов'язковий

String

API ключ мерчанта

Ключ

предоставляется

надається на

почту мерчанту

пошту мерчанта

trans_id

Status
colourGreen
title

Обязательно

Обов'язковий

String

ID

платежа

оплати в

системе

системі PSP Platon

card_cvv2

Status
colour

Yellow

Green
title

НЕ ОБязательно

Обов'язковий

Number

Проверочный

CVV код

на карте

В

формате

форматі "ХХХ"
3

символа

символи

signature

Status
colourGreen
title

Обязательно

Обов'язковий

String

Контрольная подпись

Примеры запроса

Контрольний підпис

Code Block
languagephp
<?php
sha1(
  $pass
='***************'; //Client's password $params['action']='DEBIT_PREPARE'; $params['client_key']='******'; //Client's KEY $params['order_id']='Platon_test_37254'.rand(100, 999); $params['order_amount']='10.00'; $params['order_currency']='UAH'; $params['order_description']='test_by_Platon'; $params['card_number'] = '1111111111111111
.
  strtolower(
    implode(
      '',
      $action,
      $client_key,
      $trans_id,
      $card_cvv2
    )
  )
)

Приклад запиту

Expand
titleПриклад запиту на PHP
Code Block
languagephp
<?php
  $pass='***************';
  $params['card_exp_month'] = '11action']='DEBIT_PREPARE';
  $params['cardclient_exp_yearkey'] = '1111'******';
  $params['cardorder_cvv2id'] = '111'Platon_test_37254'.rand(100, 999);
  $params['payerorder_first_nameamount']='Jack10.00';
  $params['payerorder_last_namecurrency']='AndersonUAH';
  $params['payerorder_phonedescription']='380962111111test_by_Platon';
  $params['payercard_addressnumber'] = 'NA1111111111111111';
  $params['payercard_exp_countrymonth'] = 'UA11';
  $params['payercard_exp_stateyear'] = 'NA1111';
  $params['payercard_citycvv2'] = 'NA111';
  $params['payer_zipfirst_name']='01001Jack';
  $params['payer_emaillast_name']='test@test.comAnderson';
  $params['payer_ipphone']='111.111.111.111380962111111';
  $params['termpayer_url_3dsaddress']='https://google.comNA';
  $params['signaturepayer_country'] = sha1($pass . strtolower(implode('', $params)))'UA';
  $params['payer_state']='NA';
  $params['payer_city']='NA';
  $url = 'https://secure.platononline.com/p2p-debit/$params['payer_zip']='01001';
  
  $tempData = array();
    foreach ($params as $key => $value) {
      $tempData[] = $key.'='.urlencode($value);
    }
    
  $crq = curl_init();
    curl_setopt($crq, CURLOPT_URL, $url);
    curl_setopt($crq, CURLOPT_HEADER, 0$params['payer_email']='test@test.com';
  $params['payer_ip']='111.111.111.111';
  $params['term_url_3ds']='https://google.com';
  $params['signature'] = sha1($pass . strtolower(implode('', $params)));
  
  $url = 'https://secure.platononline.com/p2p-debit/';
  
  $tempData = array();
    curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1);foreach ($params as $key => $value) {
      curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0$tempData[] = $key.'='.urlencode($value);
    curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0}
    
  $crq = curl_init();
    curl_setopt($crq, CURLOPT_POSTFIELDSURL, implode('&', $tempData));
 $url);
  $result = curl_execsetopt($crq, CURLOPT_HEADER, 0);
    if (curl_errnosetopt($crq)) {
   , CURLOPT_RETURNTRANSFER, 1);
  echo 'ERROR: '.curl_errorsetopt($crq, CURLOPT_SSL_VERIFYHOST, 0);
  
 }     curl_closesetopt($crq);

  echo $result, CURLOPT_SSL_VERIFYPEER, 0);
  $moda = json_decode($result, true);curl_setopt($crq, CURLOPT_POSTFIELDS, implode('&', $tempData));
    $result $pars['action']='DEBIT_RUN'= curl_exec($crq);
  $pars['client_key']='7Y0Y8RCGG5';   $pars['trans_id']=$moda['trans_id'];
  $pars['signature']= sha1($pass . strtolower(implode('', $pars)));;if (curl_errno($crq)) {
      echo 'ERROR: '.curl_error($crq);
    }
$temp   = arraycurl_close($crq);

  echo foreach$result;
($pars as $key$moda => $value) { json_decode($result, true);

     $temp[] = $key.'='.urlencode($value);
    }
  $crq = curl_init();
    curl_setopt($crq, CURLOPT_URL, $url);
    curl_setopt($crq, CURLOPT_HEADER, 0);
    curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0$pars['action']='DEBIT_RUN';
  $pars['client_key']='*******';
  $pars['trans_id']=$moda['trans_id'];
  $pars['card_cvv2']='111';
  $pars['signature']= sha1($pass . strtolower(implode('', $pars)));
  
  $temp = array();
    foreach ($pars as $key => $value) {
      $temp[] = $key.'='.urlencode($value);
    }
  $crq = curl_init();
    curl_setopt($crq, CURLOPT_SSL_VERIFYPEERURL, 0$url);
    curl_setopt($crq, CURLOPT_POSTFIELDSHEADER, implode('&', $temp)0);

   $res = curl_execsetopt($crq, CURLOPT_RETURNTRANSFER, 1);

   if (curl_errnosetopt($crq)) {
, CURLOPT_SSL_VERIFYHOST, 0);
     echo 'ERROR: '.curl_error($crq);
    }curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0);
    curl_closesetopt($crq);
  
  echo $res;
  $respRedirect = json_decode($res, true);
  echo $respRedirect['redirect_url'];
  
  header('Location: '.$respRedirect['redirect_url']);
  
?>

Callback

Expand
titleОсобенности работы с Callback
Include PageРабота с CallbackРабота с Callback Expand
titleБезопасность
Include PageБезопасностьБезопасность

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

Данный режим работает по умолчанию. Передавать async = N не нужно.

Зашифрованная подпись для проверки достоверности коллбека
Expand
titleCallback при при успешном списании
Code Block
languagephp
array (
  'action' => 'DEBIT_RUN',
  'result' => 'SUCCESS',
  'status' => 'SETTLED',
  'order_id' => '4385323',
  'trans_id' => '28261-47789-28578',
  'trans_date' => '2020-02-25 07:12:58',
  'card_token' => '8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2',
  'hash' => '********************************',
)

Параметр

Описание

action

DEBIT_RUN

result

SUCCESS

status

SETTLED

order_id

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

trans_id

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

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

card_token

Зашифрованный токен карты для последующих транзакций по card_token

hash

, CURLOPT_POSTFIELDS, implode('&', $temp));
    $res = curl_exec($crq);
    if (curl_errno($crq)) {
      echo 'ERROR: '.curl_error($crq);
    }
    curl_close($crq);
  
  echo $res;
  $respRedirect = json_decode($res, true);
  echo $respRedirect['redirect_url'];
  
  header('Location: '.$respRedirect['redirect_url']);
  
?>

Callback

Expand
titleОсобливості роботи з Callback
Include Page
Робота з Callback
Робота з Callback
Expand
titleБезпека
Include Page
Безпека
Безпека
Include Page
Callback / Response - DEBIT
Callback / Response - DEBIT