Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 73 Next »

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


Содержание


Описание

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

Добавление атрибута target="_blank" на кнопку оплаты, для открытия Privat24 в новом окне, строго запрешено.

Оплата Privat24 не поддерживает холдирование средств (HOLD).


Демо


Чеклист интеграции

  • Привести сайт / приложение к соответствию требованиям.
  • Интегрировать формирование и отправку запроса согласно API.
  • Передать тех поддержке PSP Platon ссылку для Callback.
  • Провести оплату используя реальную карту (активируется после подписание договора).
  • Получить Callback.

Требования

 SSL сертификат

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

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

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

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

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

 TLS 1.2

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


API параметры

HTTP METHOD: POST

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

Параметр

Значение

Описание

Особенности

key
ОБЯЗАТЕЛЬНО

String

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

Ключ предоставляется на почту мерчанту

payment
ОБЯЗАТЕЛЬНО

P24

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

data
ОБЯЗАТЕЛЬНО

amount
ОБЯЗАТЕЛЬНО

Number

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

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

currency
ОБЯЗАТЕЛЬНО

UAH

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

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

description
ОБЯЗАТЕЛЬНО

String

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

Для кириллических символов необходимо использовать формат UTF-8

Max 5000 символов

url
ОБЯЗАТЕЛЬНО

String

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

Max 255 символов

email
ОБЯЗАТЕЛЬНО

String

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

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

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

Max 255 символа.

phone
ОБЯЗАТЕЛЬНО

Number

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

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

Max 255 символа.

sign
ОБЯЗАТЕЛЬНО

String

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

md5(
  strtoupper(
    strrev($key).
    strrev($payment).
    strrev($data).
    strrev($url).
    strrev($pass)
  )
)

lang
НЕ ОБЯЗАТЕЛЬНО

UK
RU
EN

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

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

first_name
НЕ ОБЯЗАТЕЛЬНО

String

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

Max 32 символа

last_name
НЕ ОБЯЗАТЕЛЬНО

String

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

Max 32 символа

address
НЕ ОБЯЗАТЕЛЬНО

String

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

Max 32 символа

zip
НЕ ОБЯЗАТЕЛЬНО

String

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

Max 32 символа

city
НЕ ОБЯЗАТЕЛЬНО

String

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

Max 32 символа

country
НЕ ОБЯЗАТЕЛЬНО

String

Двухзначный код страны плательщика

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

state
НЕ ОБЯЗАТЕЛЬНО

String

Код штата, провинции или области плательщика

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

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

customer_wallet
НЕ ОБЯЗАТЕЛЬНО

String

Номер електронного кошелька пользователя

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

order
НЕ ОБЯЗАТЕЛЬНО

String

ID платежа в системе мерчанта

Max 32 символа

formid
НЕ ОБЯЗАТЕЛЬНО

String

Параметр дополнительной настройки


ext1, ext2, ext3, ext4, ext5, ext6, ext7, ext8, ext9, ext10
НЕ ОБЯЗАТЕЛЬНО

String

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

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


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

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

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

Content-Type: form-data или x-www-form-urlencoded

<?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>

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

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


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

 Полный список методов получения результата транзакции

Callback & Response

Використовуйте Callback або Response (в залежності від типу запиту) для автоматизації процесу зарахування у вашій системі.

Відправляється автоматично або за вашим API запитом для перевідправки.


Telegram Bot

Нотифікація в Telegram Bot про успішну оплату та деталізація одразу після списання (підключення бота по домовленості в груповому чаті з мерчантом)


Особистий кабінет PSP Platon

Всю необхідну інформацію ви знайдете в нашому особистому кабінеті за посиланням https://secure.platononline.net/auth/login

 Подробиці

Інструкція по використанню

Інструкція до особистого кабінету PSP Platon


Помилки доступу в кабінет

Пароль для особистого кабінета актуальний 30 днів. В налаштуваннях кабінету є можливість змінити пароль до кінця терміну його дії, а також нотифікація в останні 10 днів перед закінченням терміну дії старого паролю.

Якщо пароль було втрачено або протерміновано і доступ в кабінет заблоковано, будь ласка, зверніться в груповий чат вказавши логін та email для відправки нового пароля.


CSV файл

CSV файл з деталями оплати можна завантажити в особистому кабінеті PSP Platon.

Для коректного відображення даних в Microsoft Excel рекомендуємо ознайомитись з інструкцією по використанню CSV файлів.


Банківський реєстр

Банківські реєстри можуть бути відправлені вам на регулярній основі на ваш Email або FTP.



Callback

 Особенности работы с Callback
Unable to render {include} The included page could not be found.
 Безопасность
Unable to render {include} The included page could not be found.

Callback при успешной оплате

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

При успешной оплате:

 Пример POST параметров в Callback при успешной оплате
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',
)

Параметр

Описание

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

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

md5(
  strtoupper(
    $pass.
    $order_id
  )
)
 Пример GET параметров

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

array (
  'token' => '12345678',
)

При неуспешной оплате:

При неуспешной оплате Callback не отправляется.


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

 Список ошибок, их причин и возможных решений.
 Incorrect sign

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

Варіант 1

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

Перевірте вірність сформованого підпису. Якщо помилку не знайшли зверніться до тих підтримки.


Варіант 2

Додані параметри, які не входять до цього запиту.

Перевірте список параметрів, що передаються. Якщо помилку не знайшли зверніться до тих підтримки.


Варіант 3

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

Перевірити чи ви використовуєте UTF-8 і правильний формат параметрів.

 Empty action

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

Варіант 1

Параметр action заповнений неправильно, порожній, чи не першому місці у списку параметрів запиту.

Перевірте список параметрів, що передаються. Якщо помилку не знайшли зверніться до тих підтримки.


Варіант 2

Запит надсилається методом GET, а не POST.

Надіслати запит методом POST.

 Order already exists

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

Значення order_id має бути унікальним. Ця помилка говорить про те, що у вас вже була успішна транзакція з таким order_id.

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

 Service error

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

Ситуація потребує уваги співробітників Platon.

Рекомендуємо звернутися до тех підтримки Platon для перевірки причини.

 Previous transaction not completed

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

Ситуація потребує уваги співробітників Platon.

Рекомендуємо звернутися до тех підтримки Platon для перевірки причини.

 Recurring not supported

Response: {"result":"ERROR","error_message":"Recurring not supported"}

rc_token заблокований, докладніше про причини можна дізнатися у розділі /wiki/spaces/docs/pages/1323303006

Рекомендуємо видалити цей rc_token з вашої бази даних та повторити верифікацію карти для отримання rc_token та можливості проведення транзакцій за новим токеном.

 Initial transaction too old

Response: {"result":"ERROR","error_message":"Initial transaction too old"}

card_token заблокований, докладніше про причини можна дізнатися у розділі /wiki/spaces/docs/pages/1323303006

Рекомендуємо видалити цей card_token з вашої бази даних та повторити верифікацію карти для отримання card_token та можливості проведення транзакцій за новим токеном.

 Account error

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

Варіант 1

Ваша IP адреса не додана до нашого білого списку.

Зверніться до підтримки для додавання вашого IP в білий список.


Варіант 2

Цей функціонал вам не підключений.

Зверніться до підтримки для активації функціоналу.


Варіант 3

Запит надіслано не на те посилання.

Рекомендуємо звірити посилання для надсилання запиту із зазначеною у потрібному розділі документації.


Варіант 4

У запиті вказано неправильне або неіснуюче значення параметра channel_id.

Перевірте значення channel_id на достовірність або уточніть у тех підтримки доступні у вас значення.

 Card token not found for current client

Response: {"result":"ERROR","error_message":"Card token not found for current client"}

Надсилання запиту по цьому card_token відключена для цього API ключа так як card_token був отриманий на іншому API ключі.

Зверніться до тих підтримки для вирішення цієї ситуації.

 Incorrect hash

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

Варіант 1

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

Перевірте вірність сформованого підпису. Якщо помилка не знайдена зверніться до тех підтримки.


Варіант 2

Додані параметри, які не входять до цього запиту.

Перевірте список параметрів, що передаються. Якщо помилка не знайдена зверніться до тех підтримки.


Варіант 3

Запит був відправлений не з того API ключа, за яким був отриманий rc_token.

Рекомендуємо замінити API ключ на той, яким було отримано rc_token.

 Duplicate request

Response: {"result":"ERROR","error_message":"Duplicate request"}

За одну хвилину в систему було відправлено кілька однакових запитів.

Рекомендуємо перевірити ваш механізм надсилання запитів на наявність задвоєння.

 Incorrect card_token value

Response: {"result":"ERROR","error_message":"Incorrect card_token value"}

Варіант 1

Запит було надіслано менш ніж через 10 хвилин після отримання токена.

Рекомендуємо налаштувати надсилання запитів щонайменше через 10 хвилин після отримання токена. Запит, за яким отримана ця помилка, необхідно повторити.


Варіант 2

В параметр card_token внесено неправильне значення.

Рекомендуємо перевірити вірність внесених даних у поле card_token отриманого з колбека раніше. Запит, за яким отримана ця помилка, необхідно повторити.

 Not found card token

Response: {"result":"ERROR","error_message":"Not found card token"}

Варіант 1

Запит було надіслано менш ніж через 10 хвилин після отримання токена.

Рекомендуємо налаштувати надсилання запитів щонайменше через 10 хвилин після отримання токена. Запит, за яким отримана ця помилка, необхідно повторити.


Варіант 2

В параметр card_token внесено неправильне значення.

Рекомендуємо перевірити вірність внесених даних у поле card_token отриманого з колбека раніше. Запит, за яким отримана ця помилка, необхідно повторити.

 102: Token is not active

'decline_reason' => '102: Token is not active'

rc_token заблокований, докладніше про причини можна дізнатися у розділі /wiki/spaces/docs/pages/1323303006

Рекомендуємо видалити цей rc_token з вашої бази даних та повторити верифікацію карти для отримання rc_token та можливості проведення транзакцій за новим токеном.

 Wrong credit_date

'error_message' => 'Wrong credit_date'

credit_date введено не відповідно до формату YYYY-MM-DD або вказано майбутню дату.

Рекомендуємо вказати в credit_date минулу дату чи поточну у форматі YYYY-MM-DD.

 Invalid pan

'error_message' => 'Invalid pan'

Invalid pan введено неправильний номер картки.

Звірте номер картки. Рекомендуємо перевіряти номер картки на дійсність перед відправкою у запиті використовуючи алгоритм Луна.

  • No labels