Versions Compared

Key

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

Этот функционал будет активирован после вашего запроса в групповом чате.

Table of Contents

Описание:

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

...

Info

Цей функціонал буде активовано після вашого запиту в груповому чаті.


Зміст

Table of Contents
maxLevel2
indent0px
absoluteUrltrue
stylecircle


Опис

Цей метод дозволить розмістити окрему кнопку для оплати Privat24 без використання платіжної форми.

Note

Заборонено додавати атрибут target="_blank" на кнопку

...

оплати для

...

відкриття Privat24 в

...

новому вікні.

Note

Оплата Privat24 не

...

підтримує холдування коштів (HOLD).


Демо

...

Iframe
scrollingno
srchttps://devplaton.com.ua/invoices/demo_buttons/payment_privat24.php
width570
frameborderhide
height55

...

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

API Endpoint (cсылка для отправки запросов):

Только Form HTML запрос.

...


Чекліст інтеграції

  •  Привести сайт / приложение к соответствию требованиям.
  •  Інтегрувати цей API метод.
  •  Передати тех підтримці PSP Platon посилання для Callback.
  •  Провести оплату реальною карткою (активується після підписання договору).
  •  Отримати Callback та змінити статус оплати на вашому сайті.

Вимоги

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

API параметри

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/payment/auth

...

Описание параметров запроса:

...

Параметр

...

Значение

...

Описание

...

Особенности

...

Обязательно

...

Параметр

Значення

Опис

Особливості

key

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

String

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

Ключ

...

Да

...

надається на пошту мерчанта

payment

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

P24

Код

...

Да

...

data

...

amount

...

Number

...

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

...

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

data

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

amount

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

Number

Сума оплати

Tip

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

1000.00

Warning

...

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

1000
1000.0
1,000.0
1,000.00

...

Да

...

currency

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

UAH

Валюта

...

Info

Оплата

...

Да

...

description

...

String

...

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

description

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

String

Опис

Note

Для

...

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

Max 5000

...

Да

...

символів

url

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

String

...

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

...

Max 255 символов

...

Да

...

sign

...

String

...

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

Max 255 символів

email

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

String

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

Info

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

Info

Відсутність пробілів.

Max 255 символів

phone

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

Number

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

Info

Обов'язковий формат телефону 380…

Max 255 символів

sign

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

String

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

Code Block
languagephp
md5(
  strtoupper(
    strrev(

...

$key).
    strrev(

...

$payment).
    strrev(

...

$data).
    strrev(

...

$url).
    strrev(

...

$pass)
  )
)

...

Да

...

lang

...

UK, RU, EN

...

Язык отображения формы

...

В приоритете настройка языка браузера плательщика

...

Нет

...

email

...

String

...

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

...

Max 255 символа

...

Нет

...

first_name

...

String

...

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

...

Max 32 символа

...

Нет

...

last_name

...

String

...

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

...

Max 32 символа

...

Нет

...

phone

...

Number

...

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

...

Note

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

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

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

...

Нет

...

address

...

String

...

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

...

Max 32 символа

...

Нет

...

zip

...

String

...

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

...

Max 32 символа

...

Нет

...

city

...

String

...

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

...

Max 32 символа

...

Нет

...

country

...

String

...

lang

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

UK
EN

Мова відображення платіжної форми

В приоритеті cookie в браузері клиента з параметром lang

Стандарт ISO 639-1

first_name

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

String

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

Max 32 символи

last_name

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

String

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

Max 32 символи

address

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

String

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

Max 32 символи

zip

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

String

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

Max 32 символи

city

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

String

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

Max 32 символи

country

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

String

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

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

...

Max 2 символи

state

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

String

Код

...

штату, провінції або області платника

Note

...

Обов'язковий параметр для

...

країн US, CA, AU

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

...

Max 3 символа.

customer_wallet

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

String

Номер електронного

...

гаманця платника

Поле

...

Нет

...

обов'язкове для типів бізнесу пов'язаниз з віртуальними активами

order

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

String

ID

...

оплати в

...

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

Max 32

...

Нет

...

символи

formid

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

String

Параметр

...

додаткового налаштування

...

Нет

...

ext1-ext10

...

String

...

Дополнительные поля

...

Max 1024 символа в каждом ext поле

...

Нет

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

...


ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10

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

String

10 додаткових полів

Max 1024 символи в кожному ext полі


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

Expand
title

...

Параметр

...

Описание

...

id

...

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

...

order

...

Ордер ID транзакции в системе мерчанта. Если параметр не передавался система Platon присвоит его самостоятельно

...

status

...

SALE

...

number

...

Маска карты в формате ХХХХХХ*ХХ

...

description

...

Описание

...

amount

...

Сумма списания

...

currency

...

Валюта транзакции

...

name

...

Сума передаваемых параметров first_name и last_name

...

email

...

E-mail плательщика

...

phone

...

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

...

date

...

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

...

ip

...

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

...

ext1-ext10

...

Дополнительные поля от 1 до 10

...

sign

...

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

...

titleПример GET параметров

...

Приклад запиту на PHP + HTML
Warning

Запит має відправлятися з браузера платника Client - Server, а не з сервера мерчанта Server - Server.

Info

Content-Type: form-data або x-www-form-urlencoded

Code Block
languagephp
<?php
  $pass = '***';
  $data['key'] = '***';
  $data['url'] = 'http://google.com';
  $data['data'] = base64_encode(
                    json_encode(
                      array(
                        'amount' => '100.00',
                        'description' => 'Product',
                        'currency' => 'UAH'
                      )
                    )
                 );
  $data['payment'] = 'P24';
  $sign = md5(
            strtoupper(
              strrev($data['key']).
              strrev($data['payment']).
              strrev($data['data']).
              strrev($data['url']).
              strrev($pass)
            )
          );
?>

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Payment</title>
  </head>
  <body onload="javascript:document.forms[0].submit()">
    <form action="https://secure.platononline.com/payment/auth" method="post">
    <input type="hidden" name="payment" value="<?=$data['payment']?>" />
    <input type="hidden" name="key" value="<?=$data['key']?>" />
    <input type="hidden" name="url" value="<?=$data['url']?>" />
    <input type="hidden" name="data" value="<?=$data['data']?>" />
    <input type="hidden" name="sign" value="<?=$sign?>" />
    </form>                                         	
  </body>
</html>
Warning

Использование cURL для этого запроса запрещено

Тестирование:

В целях тестирования необходимо использовать реальную карту привязанную к Приват24.

Дебагинг недоставленных Callback:

С целью дебагинга работы вашего сервера на ошибки получения Callback можем предоставить вам телеграм бот, куда будут поступать тело недоставленных вам Callback и информация об HTTP статусе.

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

...

Проверка платежей:

Получить информацию о платежах можно такими способами:

  • Используя Callback для автоматизации процесса зачисления в системе на вашей стороне.

  • Нотификация в телеграм бот про успешную оплату с данными платежа.

  • В вашем личном кабинете Platon.

  • CSV файл с деталями платежей скачав в личном кабинете Platon.

  • Письмо об успешном платеже на вашу почту.

  • Банковский реестр на почту или ваш FTP.

Коллбек при успешной оплате:

Tip

Коллбеки будут поступать с наших IP:
78.140.172.231
62.113.223.114
78.140.135.130
167.99.253.235
185.172.90.66
185.172.90.115
185.172.90.119

Info

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

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

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

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

  • Basic Authorization

  • Отправка Callback на несколько адресов (по умолчанию на один)

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

...

titleПример POST параметров в Callback при успешной оплате
Code Block
languagephp
array (
  'id' => '12345-12345-12345',
  'order' => '12345678',
  'status' => 'SALE',
  'description' => 'description 12345',
  'amount' => '99.99',
  'currency' => 'UAH',
  'date' => '2020-02-14 11:11:11',
  'ip' => '172.172.17.172',
  'sign' => 'qwerty123uiop456asdfgh789jkl012z',
  'number' => '411156*89',
  'email' => NULL,
  'name' => ' ',
  'phone' => NULL,
  'ext1' => '12345678',
)
Info

Для проверки достоверности полученного callback, рекомендуем сверять подпись sign по формуле md5(strtoupper(pass.order_id))

Тестування

В цілях тестування необхідно використовувати реальну картку прив'язану до Privat24.


Перевірка платежів

Expand
titleСписок методів перевірки статусів транзакцій
Include Page
Отримання результату транзакції
Отримання результату транзакції

Callback

Expand
titleОсобливості роботи з Callback
Include Page
Робота з Callback
Робота з Callback
Expand
titleБезпека
Include Page
Безпека
Безпека
Include Page
Callback / Response - P24
Callback / Response - P24
Expand
titleПриклад GET параметрів
Tip

Платник буде відправлений за посиланням вказаному в url с додаванням order методом GET

Code Block
languagephp
array (
  'token' => '12345678',
)

...

При невдалій оплаті:

...

Note

При

...

Ошибки запросов:

В ходе проведения запрос вы можете получить разные ошибки. Пожалуйста, ознакомьтесь со списком возможных ошибок, их причин и возможности решения.

...

невдалій оплаті Callback не відправляється.


Помилки запитів

Expand
titleСписок ошибок

...

Ошибка

...

Причины

...

Решение

...

Response: {"result":"ERROR","error_message":"Incorrect sign"}

...

Неверно сформирована зашифрованная подпись.

...

Проверьте верность сформированной подписи. Если ошибку не нашли обратитесь в тех поддержку.

...

Добавлены параметры, которые не входят в данный запрос.

...

Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.

...

Неверно зашифрована data.

...

Проверить используете ли вы UTF-8 и верный формат параметров.

...

Response: {"result":"ERROR","error_message":"Empty action"}

...

Параметр action заполнен не верно, пуст, или не на первом месте в списке параметров запроса.

...

Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.

...

Response: {"result":"ERROR","error_message":"Order already exists"}

...

Значение order_id должно быть уникальным. Данная ошибка говорит о том, что у вас уже была успешная транзакция с таким order_id.

...

Заменить значение order_id на новое уникальное.

...

Response: {"result":"ERROR","error_message":"Service error"}

...

Ситуация требует внимания сотрудников Platon.

...

Рекомендуем обратиться в тех саппорт Platon для проверки причины.

...

Response: {"result":"ERROR","error_message":"Previous transaction not completed"}

...

Ситуация требует внимания сотрудников Platon.

...

, их причин и возможных решений.
Include Page
Помилки та рішення при запитах
Помилки та рішення при запитах