Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Содержание

Table of Contents


Описание

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

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

Обязательные требования к сайту

Разместить логотипы платежных систем Visa и Mastercard

Добавить логотипы PSP Platon

API параметры запроса


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

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 параметры

HTTP METHOD: POST

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

Параметр

Значение

Описание

Особенности

...

Обязательно

...

action

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

DEBIT_PREPARE

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

 

...

Да

...

async

Status
colourYellow
titleне ОБЯЗАТЕЛЬНО

Y
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 символа без пробелов

...

payer_last_name

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

String

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

Max 32 символа без пробелов

...

Да

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

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

...

Note

Если ваше юр. лицо открыто в Приватбанк и вы передаете в запросе телефон плательщика, то:

  1. обязательный формат телефона 380…

  1. номер телефона должен соответствовать финансовому номеру привязанному к карте

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

Проверочный код на карте

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

...

Да

req_token

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

Y
N

Для получения card_token

По умолчанию "N"

...

Да

...

term_url_3ds

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

String

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

Max 255 символов

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.
    )
  )
)

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

Expand
titleПример запроса на PHP
Code Block
languagephp
<?php
  $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';
  $params['card_exp_month'] = '

...

11';
  $params['card_exp_year'] = '

...

1111';
  $params['card_cvv2'] = '

...

111';
  $params['payer_first_name']='Jack';
  $params['payer_last_name']='

...

Anderson';
  $params['payer_phone']='

...

380962111111';
  $params['payer_address']='NA';
  $params['payer_country']='UA';
  $params['payer_state']='NA';
  $params['payer_city']='NA';
  $params['payer_zip']='01001';
  $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();
    foreach ($params as $key => $value) {
      $tempData[] = $key.'='.urlencode($value);
    }
    
  $crq = curl_init();
    curl_setopt($crq, CURLOPT_URL, $url);
    curl_setopt($crq, CURLOPT_HEADER, 0);
    curl_setopt

...

Получение статуса транзакции в Callback и Response:

Tip

Ответы будут поступать с наших IP:
78.140.172.231
62.113.223.114
78.140.135.130
167.99.253.235

Info

Для получения коллбеков отправьте ссылку на ваш обработчик в ваш групповой чат. Ссылка для коллбеков прописывается на стороне Platon.

После отправки коллбека в ответ Platon должен получить код HTTP 200 OK. Если коллбек не удалось доставить будет произведено до 5 попыток повторной отправки в течение 60 секунд.

Опциональные варианты активация которых происходит по вашему обращению в групповом чате:

  • Коллбеки в формате JSON

  • Basic Authorization

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

Для просмотра примера раскройте список

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

Данный режим активируется при передаче ‘async’='Y'. В этом режиме обязательно необходимо принимать callback на ваш callback url.

Для просмотра примера раскройте список

Дополнительная проверка оплаты:

...

($crq, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($crq, CURLOPT_POSTFIELDS, implode('&', $tempData));
    $result = curl_exec($crq);
    if (curl_errno($crq)) {
      echo 'ERROR: '.curl_error($crq);
    }
    curl_close($crq);

  echo $result;
  $moda = json_decode($result, true);

  $pars['action']='DEBIT_RUN';
  $pars['client_key']='7Y0Y8RCGG5';
  $pars['trans_id']=$moda['trans_id'];
  $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_URL, $url);
    curl_setopt($crq, CURLOPT_HEADER, 0);
    curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($crq, 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
Безопасность
Безопасность

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

Данный режим работает по умолчанию. Передавать 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

Зашифрованная подпись для проверки достоверности коллбека