- Created by Tech Platon, last modified on Jan 05, 2024
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 65 Current »
Цей функціонал буде активовано після вашого запиту в груповому чаті.
Зміст
Опис
Цей метод дозволить розмістити на вашому сайті або додатку окрему кнопку оплати Apple Pay.
Чекліст інтеграції
- Привести сайт / додаток до відповідності вимогам.
- Інтегрувати API Apple Pay.
- Створити сертифікати Apple Pay та надати їх тех підтримці PSP Platon.
- Пепередати тех підтримці PSP Platon посилання для Callback.
- Повідомити тех підтримці PSP Platon ваші IP адреси серверів сайту або про те, що буде додаток (в цьому випадку обмеження по IP будуть зняті).
- Провести запит для отримання зашифрованих платіжних даних згідно API Apple Pay.
- Після авторизації платника та вибору реальної картки в гаманці Apple Pay поверне зашифровані платіжні дані.
- Провести запит згідно цього API PSP Platon використовуючі зашифровані платіжні дані від Apple Pay.
- Отримати Response або Callback для редиректа платника на 3DS перевірку.
- Відправити клієнта на 3DS перевірку.
- Отримати Response або Callback з фінальним статусом.
- Повідомити клієнта про успішну / невідалу оплату.
Вимоги
У вашого сайту має бути валідний SSL сертифікат.
Для перевірки валідності та терміну дії вашого SSL сертифіката рекомендуємо скористатися сервісом за посиланням.
Обов'язкова підтримка протоколу TLS не нижче версії 1.2
У футері вашого сайту необхідно розмістити логотипи платіжних систем та PSP Platon.
PSP Platon
Завантажити логотип PSP Platon
Visa
Завантажити логотип Verified by Visa
Mastercard
Завантажити логотип Mastercard
Завантажити логотип Mastercard SecureCode
Оплата частинами Monobank
Завантажити логотип, банери, "лапки" Monobank
Оплата частинами ПриватБанк
Завантажити логотип, банери оплати частинами ПриватБанк
PCI DSS
Apple Pay
Google Pay
Завантажити логотип Google Pay
Privat24
Повідомити платника про умови підписки та регулярних списань та отримати підтвердження про згоду з умовами
Розмістити договір публічної оферти та отримати підтвердження від платника про згоду з умовами
Надати платнику можливість відмінити підписку
Згідно правил МПС дозволена лише одна спроба списання коштів з платника за добу
Обмеження
Згідно обмежень Apple - Apple Pay працює:
Тільки в браузері Safari та Google Chrome
Apple Pay API
Apple Pay API
Відповідно офіційної документації Apple Pay для генерації payment_token
необхідно виконати наступні кроки:
Перевірити можливість клієнтом оплати за допомогою Apple Pay
if (window.ApplePaySession) { // The Apple Pay JS API is available. }
2. Відобразити кнопку Apple Pay
4. Пройти валідацію сесії Apple Pay
5. Отримати платіжну авторизацію та платіжний об'єкт (токен) Apple Pay. Приклад:
{ "paymentData":{ "version":"EC_v1", "data":"yI4XAA4JeMDgKB6gxENZ2XwXjFDuPR5a6QHjES6mRqqhExHaL9qhFCiTWB0GDfeNTZS/3rOKVAzunOZcZ/EeKYHpgjKL07IiNmtYMrUj1CIwlUh7A49XX5CWMIbvhHfT6QEObZBqMEdIrx58IWxs2172TNmvEjy+kSF/D2+I4q7+DuztDY34L+vfwZ1wFTel5vneoYkaSteAkXth1K99T7GEqQ+UHVquKfY2/4v5nSBordFspxHUUgZp3gap4r40wp68Kg/CEpr3MCdz42zJwZxIcvvGkGy5c/knrOhNZNFTnZZuyNO8uDWEBWZKPCLv8Wj4Ki83yf26DNzSPAQCxgs6K4s1VNA/VDItFyuwmWUlIdRe2QA1Y+CPuxMIaaA6QG33PahqbltxnSf6VZEhdOeKYgR0x8BrtVpmxxl5aI17j0UPNVuYA4zEh3XXsW0IkxTt2upTbKEezAMHUlZ26STUIQnLxfP4IoVKeXTdbjxiLqIDKce9ZKsvB4xA3ptfCC9PvkPDX3c+FDGHSJmh6V9Vo7f6mHV0aPqafNNnNhaRVLWnEKBexvYUjg==", "signature":"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", "header":{ "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+pI1hNoCM9bW8vSmYRpNaSpBuNzuQMVLFs0DMMrN7JgKzlRxv7i+JzCkFnqcmdluDq2HPtTuSx3GJY9LL9upkA==", "publicKeyHash":"zfJ71ggZ3N330/bdjh41DeAfazJlpkqHM8kLjdUUEJc=", "transactionId":"68e8200b7b44b551ce01c067bcf1b55b595a0e43885ea3a41cf22d7f93e5a6a1" } }, "paymentMethod":{ "displayName":"MasterCard 1750", "network":"MasterCard", "type":"debit" }, "transactionIdentifier":"68E8200B7B44B551CE01C067BCF1B55B595A0E43885EA3A41CF22D7F93E5A6A1" }
Налаштуйте відправку отриманого значення токену в параметрі payment_token
у відповідному форматі вказаному нижче:
'payment_token' => '{"paymentData":{"data":"9bT/4ZvtUwhVZNYYJzHy5q0fdYt+qOuH+tn14wuAg6f3THs0Dt0iUu6Vgpek1rJBAvRqQ/y1MxdKBecnf0WrTyXWSa1gbEq/3wp3HyJTRQLgWVXbGZjyH4SIhYJhi7cfL4h4VkhxfVpnZU36F0B8W0Q21i8tQmeIOY4pPfNQm61FVr3+LLjCAHM89yIsb3NWPX5pFNEdpP1PddoGAf02mnHC2ccU4ebCa/zWbDOIiNu5MmQoeQZ9SlQO6Qiz2PkmaJnIwDGT5ZeogCKKvS1DOlwcW4Yy6eHGgQ9lmRwsr+NzMy740a+sjA8j/9rGTDB+qHkNu/7VqXN7b9wZNZHZVnTMfd7iP0WlWzBbzu8wz3zAxzCBn4taV79+/NVCLnRuKBddbV/RqOEz4kH0GKHI","signature":"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","header":{"publicKeyHash":"IbqvPL2hlWbWg5+wo7bqyXKyFEo9aX6EtD7MMJBEC1o=","ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBk/ncmFdP2TAa3I3gYEOEfA4OXEgJGMmSg1b2ZEhpwhQmKyWMl1eiFrevDUY/lq6Brl1o5H/vVkLiBGq5Dp2Aw==","transactionId":"2779960e7aed8a5157bf17104112d86640fcb91cdf0c99a7496b8c0951ee8c45"},"version":"EC_v1"},"paymentMethod":{"displayName":"MasterCard 2351","network":"MasterCard","type":"credit"},"transactionIdentifier":"2779960e7aed8a5157bf17104112d86640fcb91cdf0c99a7496b8c0951ee8c45"}'
Також рекомендуємо ознайомитись з демо наданого Apple для Apple Pay:
https://applepaydemo.apple.com/
Приклад інтеграції
API параметри
HTTP METHOD: POST
API ENDPOINT: https://secure.platononline.com/post/
Параметр | Значення | Опис | Особливості |
---|---|---|---|
|
| Код платіжного метода | |
| String | API ключ мерчанта | Ключ надається на пошту мерчанту |
| String | ID оплати в системі мерчанта | Max 255 символів |
| Number | Сума оплати | Вірний варіант 1000.00 Невалідні варіанти 1000 |
|
| Валюта | Оплата можлива лише в національній валюті гривні. |
| String | Опис | Для кириличних символів необхідно використовувати формат UTF-8 Max 1024 символів |
| String | Токен від Apple Pay | Відформатований по прикладу вище токен отриманий від Apple Pay Приклад вказано вище у звернутому списку. |
| String | IP-адреса платника | В форматі "ХХХ.ХХХ.ХХХ.ХХХ" IPv6 на даний момент не підтримується та приведе до помилки |
| String | E-mail платника | Обов'язково валідна пошта. Відсутність пробілів. Max 256 символів |
| String | Номер телефону платника | Обов'язковий формат телефону 380… Мах 32 символи |
| String | Посилання по якому буде відправлено платника після спроби оплати | Мах 1024 символів |
| String | Контрольний підпис | md5( strtoupper( strrev($email). $client_pass. strrev($payment_token) ) ) |
| String | Ім'я платника | Мах 32 символи |
| String | Прізвище платника | Мах 32 символи |
| String | По батькові платника | Мах 32 символи |
| String | Дата народження платника | В форматі “YYYY-MM-DD” |
| String | Адреса платника | Мах 255 символів |
| String | Додаткова адреса платника | Мах 255 символів |
| String | Країна платника | Стандарт ISO 3166-1 alpha-2 |
| String | Штат платника | Стандарт ISO 3166-2 |
| String | Місто платника | Max 32 символи |
| String | Поштовий індекс платника | Max 32 символи |
| String | 10 додаткових полів | Max 1024 символи в кажному ext полі |
| String | Додатковий платіжний канал | Дозволяє перенаправляти платежі на інший банківський термінал |
|
| Включити асинхронний режим | В асинхронному режимі обов'язкове використання коллбеків. Стандартне значення |
|
| Стандартне значення |
Приклад запиту
<?php $client_pass='****************'; $data['action']='APPLEPAY'; $data['client_key']='***'; $data['order_id']='Test_006'; $data['order_amount']='100.00'; $data['order_currency']='UAH'; $data['order_description']='test'; $data['payer_email']='test@gmail.com'; $data['payer_phone']='380962111111'; $data['payer_ip']='11.195.75.204'; $data['term_url_3ds']= 'https://www.google.com/'; $data['payment_token']='{"paymentData":{"data":"9bT/4ZvtUwhVZNYYJzHy5q0fdYt+qOuH+tn14wuAg6f3THs0Dt0iUu6Vgpek1rJBAvRqQ/y1MxdKBecnf0WrTyXWSa1gbEq/3wp3HyJTRQLgWVXbGZjyH4SIhYJhi7cfL4h4VkhxfVpnZU36F0B8W0Q21i8tQmeIOY4pPfNQm61FVr3+LLjCAHM89yIsb3NWPX5pFNEdpP1PddoGAf02mnHC2ccU4ebCa/zWbDOIiNu5MmQoeQZ9SlQO6Qiz2PkmaJnIwDGT5ZeogCKKvS1DOlwcW4Yy6eHGgQ9lmRwsr+NzMy740a+sjA8j/9rGTDB+qHkNu/7VqXN7b9wZNZHZVnTMfd7iP0WlWzBbzu8wz3zAxzCBn4taV79+/NVCLnRuKBddbV/RqOEz4kH0GKHI","signature":"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","header":{"publicKeyHash":"IbqvPL2hlWbWg5+wo7bqyXKyFEo9aX6EtD7MMJBEC1o=","ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBk/ncmFdP2TAa3I3gYEOEfA4OXEgJGMmSg1b2ZEhpwhQmKyWMl1eiFrevDUY/lq6Brl1o5H/vVkLiBGq5Dp2Aw==","transactionId":"2779960e7aed8a5157bf17104112d86640fcb91cdf0c99a7496b8c0951ee8c45"},"version":"EC_v1"},"paymentMethod":{"displayName":"MasterCard 2351","network":"MasterCard","type":"credit"},"transactionIdentifier":"2779960e7aed8a5157bf17104112d86640fcb91cdf0c99a7496b8c0951ee8c45"}'; $data['hash'] = md5( strtoupper( strrev( $data['payer_email'] ). ($client_pass). strrev( $data['payment_token'] ) ) ); $url = 'https://secure.platononline.com/post/'; $crq = curl_init(); curl_setopt($crq, CURLOPT_URL, $url); curl_setopt($crq, CURLOPT_HEADER, 0); curl_setopt($crq, CURLOPT_POST, 1); 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, http_build_query($data)); $result = curl_exec($crq); if (curl_errno($crq)) { echo 'ERROR: '.curl_error($crq); }else{ echo $result; } curl_close($crq);
Тестування
Тестування проводиться тільки в бойовому режимі використовуючи реальну картку прив'язану в Apple Pay.
Перевірка платежів
Callback & Response
Використовуйте Callback або Response (в залежності від типу запиту) для автоматизації процесу зарахування у вашій системі.
Відправляється автоматично або за вашим API запитом для перевідправки.
Особистий кабінет PSP Platon
Всю необхідну інформацію ви знайдете в нашому особистому кабінеті за посиланням https://secure.platononline.net/auth/login
Інструкція по використанню
Інструкція до особистого кабінету PSP Platon
Помилки доступу в кабінет
Пароль для особистого кабінета актуальний 30 днів. В налаштуваннях кабінету є можливість змінити пароль до кінця терміну його дії, а також нотифікація в останні 10 днів перед закінченням терміну дії старого паролю.
Якщо пароль було втрачено або протерміновано і доступ в кабінет заблоковано, будь ласка, зверніться в груповий чат вказавши логін та email для відправки нового пароля.
CSV файл
CSV файл з деталями оплати можна завантажити в особистому кабінеті PSP Platon.
Для коректного відображення даних в Microsoft Excel рекомендуємо ознайомитись з інструкцією по використанню CSV файлів.
Банківський реєстр
Банківські реєстри можуть бути відправлені вам на регулярній основі на ваш Email або FTP.
API запит статуса
Callback & Response
URL для Callback
Для отримання Callback відправте URL на ваш обробник в груповий чат з вказанням API ключа для якого потрібно прописати посилання. Посилання для Callback вказується на боці PSP Platon.
IP адреси
Callback будуть надходити з IP:78.140.172.231
78.140.135.130
167.99.253.235
62.113.223.114
62.113.223.116
212.83.61.161
185.172.90.66
185.172.90.74
185.172.90.75
185.172.90.115
185.172.90.119
Очікувана відповідь на Callback
Після відправки Callback у відповідь PSP Platon має отримати HTTP код 200
.
Помилки при відправці Callback
Якщо Callback не вдалося відправити або було отримано не HTTP код 200
, будуть проведені додаткові повторні спроби відправки в проміжках часу 1 хв, 5 хв, 10 хв, 15 хв, 30 хв, 60 хв.
Перевідправка Callback
Для перевідправки Callback прохання повідомити в груповий чат список необхідних ордерів.
Увага! Рекоменлації цього розділу допоможуть запезпечити безпеку від шахрайських дій пов'язаних з вашим сайтом та транзакціями.
Довірені IP
Для забезпечення додаткової безпеки рекомендуємо опціонально додати в білий список доступів POST запити тільки з наших довірених IP:78.140.172.231
78.140.135.130
167.99.253.235
62.113.223.114
62.113.223.116
212.83.61.161
185.172.90.66
185.172.90.74
185.172.90.75
185.172.90.115
185.172.90.119
Секретність API доступів
Не тримайте у відкритому доступі API ключ та API пароль, а також не надавайте обидва ці параметри в групові робочі чати, в тому числі з нами. Для перевірки деталей представники PSP Platon можуть попросити у вас лише API ключ, пароль треба тримати в таємниці.
Секретність кабінету
Не розголошуйте логін та пароль від вашого особистого кабінету третім особам. У випадку якщо доступ був втрачений зверніться в груповий чат. Пароль від особистого кабінету діє 30 днів. Рекомендуємо оновлювати пароль до закінчення терміну дії в 30 днів.
Секретність посилання для Callback
Не залишайте посилання для Callback у відкритому доступі на вашому ресурсі.
Сторінка успішної оплати не гарантія успіху оплати
Не використовуйте факт переходу платника на сторінку успіщної оплати як признак успішної оплати. Статус транзакції та деталі оплати необхідно отримати тільки в Callback або в особистому кабінеті PSP Platon.
Звірка даних в Callback
При отриманні від нас Callback про успішну оплату рекомендуємо проводити на вашому боці додаткову перевірку суми та ордера з Callback на відповідність первоначальної суми та ордера у вашій базі даних, які були вказані при створенні замовлення.
Синхронний режим
Стандартний режим. Передавати async = N
не потрібно.
Асинхронний режим
Цей режим активується при передачі параметра async = Y
.
При оплаті з 3DS СИНХРОННИЙ РЕЖИМ
Проміжний редірект платника на 3DS СИНХРОННИЙ РЕЖИМ
{ "action":"APPLEPAY", "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" }
Параметри | Опис |
---|---|
|
|
|
|
|
|
| Ордер ID в системі мерчанта |
| Ордер ID в платіжній системі |
| Дата транзакції. Час в UTC |
| URL для редіректу на 3DS |
| Дані для 3DS |
| Метод відправки параметрів 3DS (POST/GET) |
array ( 'action' => 'SALE', 'result' => 'REDIRECT', 'status' => '3DS', 'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b', 'trans_id' => '28738-47774-55067', 'trans_date' => '2020-04-20 12:12:57', 'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp', 'redirect_params' => array ( 'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=', 'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=*************************************************** ), 'redirect_method' => 'POST', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| URL для редіректу на 3DS |
| Дані для 3DS |
| Метод відправки параметрів 3DS (POST/GET) |
| Зашифрований підпис для перевірки достовірності коллбека md5( strtoupper( strrev(email). CLIENT_PASS. strrev(payment_token) ) ) Увага! Якщо в запиті на оплату не було вказано |
При успішній оплаті з 3DS СИНХРОННИЙ РЕЖИМ
Response про фінальний статус при оплаті з 3DS відсутній.
array ( 'action' => 'SALE', 'result' => 'SUCCESS', 'status' => 'SETTLED', 'order_id' => '1_691201', 'trans_id' => '31176-65336-00444', 'trans_date' => '2021-01-27 16:55:33', 'descriptor' => NULL, 'auth_code' => '990647', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Опис |
| Код авторизації |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При невдалій оплаті з 3DS СИНХРОННИЙ РЕЖИМ
Response про фінальний статус при оплаті з 3DS відсутній.
array ( 'action' => 'SALE', 'result' => 'DECLINED', 'status' => 'DECLINED', 'order_id' => '1_691201', 'trans_id' => '31176-65336-00444', 'trans_date' => '2021-01-27 16:55:33', 'decline_reason' => 'Declined by processing', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Причина відмови в оплаті |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При оплаті з 3DS АСИНХРОННИЙ РЕЖИМ
Проміжна відповідь АСИНХРОННИЙ РЕЖИМ
{ "action":"SALE", "result":"ACCEPTED", "trans_id":"03346-89211- 86461", "order_id":"ORDER-12345", "trans_date":"2012-04-03 16:02:01" }
Параметри | Опис |
---|---|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
Проміжний редірект платника на 3DS АСИНХРОННИЙ РЕЖИМ
array ( 2 'action' => 'SALE', 3 'result' => 'REDIRECT', 4 'status' => '3DS', 5 'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b', 6 'trans_id' => '28738-47774-55067', 7 'trans_date' => '2020-04-20 12:12:57', 8 'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp', 9 'redirect_params' => 10 array ( 11 'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=', 12 'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=*************************************************** 13 ), 14 'redirect_method' => 'POST', 15 'hash' => '********************************', 16)
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| URL для редіректу на 3DS |
| Дані для 3DS |
| Метод відправки параметрів 3DS (POST/GET) |
| Зашифрований підпис для перевірки достовірності коллбека md5( strtoupper( strrev(email). CLIENT_PASS. strrev(payment_token) ) ) Увага! Якщо в запиті на оплату не було вказано |
При успішній оплаті з 3DS АСИНХРОННИЙ РЕЖИМ
array ( 'action' => 'SALE', 'result' => 'SUCCESS', 'status' => 'SETTLED', 'order_id' => '4385323', 'trans_id' => '28261-47789-28578', 'trans_date' => '2020-02-25 07:12:58', 'descriptor' => NULL, 'recurring_token' => '01e00c2b39bb3b933723307c442efd02', 'card_token' => '8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Опис |
| Код авторизації |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При невдалій оплаті з 3DS АСИНХРОННИЙ РЕЖИМ
array ( 'action' => 'SALE', 'result' => 'DECLINED', 'status' => 'DECLINED', 'order_id' => '4092002', 'trans_id' => '28076-29879-99538', 'trans_date' => '2020-02-03 20:49:47', 'decline_reason' => 'Declined by processing', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Причина відмови в оплаті |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При помилці в запиті
{ "result":"ERROR", "error_message":"Error description" }
При оплаті без 3DS СИНХРОННИЙ РЕЖИМ
При успішній оплаті без 3DS СИНХРОННИЙ РЕЖИМ
{ "action":"APPLEPAY", "result":"SUCCESS", "status":"SETTLED", "order_id":"ORDER-12345", "trans_id":"03346-89217- 70541", "descriptor":"test", "trans_date":"2012-04-03 16:02:01" }
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Опис |
| 10 додаткових полів |
array ( 'action' => 'SALE', 'result' => 'SUCCESS', 'status' => 'SETTLED', 'order_id' => '1_691201', 'trans_id' => '31176-65336-00444', 'trans_date' => '2021-01-27 16:55:33', 'descriptor' => NULL, 'auth_code' => '990647', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Опис |
| Код авторизації |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При невдалій оплаті без 3DS СИНХРОННИЙ РЕЖИМ
{ "action":"APPLEPAY", "result":"DECLINED", "status":"DECLINED", "order_id":"ORDER-12345", "trans_id":"03346- 89214-54141", "trans_date":"2012-04-03 16:02:01", "decline_reason":"Declined by processing" }
Параметри | Опис |
---|---|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Опис |
| Причина відмови |
array ( 'action' => 'SALE', 'result' => 'DECLINED', 'status' => 'DECLINED', 'order_id' => '1_691201', 'trans_id' => '31176-65336-00444', 'trans_date' => '2021-01-27 16:55:33', 'decline_reason' => 'Declined by processing', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Причина відмови в оплаті |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При оплаті без 3DS АСИНХРОННИЙ РЕЖИМ
Проміжна відповідь АСИНХРОННИЙ РЕЖИМ
{ "action":"SALE", "result":"ACCEPTED", "trans_id":"03346-89211- 86461", "order_id":"ORDER-12345", "trans_date":"2012-04-03 16:02:01" }
Параметри | Опис |
---|---|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
При успішній оплаті з 3DS АСИНХРОННИЙ РЕЖИМ
array ( 'action' => 'SALE', 'result' => 'SUCCESS', 'status' => 'SETTLED', 'order_id' => '4385323', 'trans_id' => '28261-47789-28578', 'trans_date' => '2020-02-25 07:12:58', 'descriptor' => NULL, 'recurring_token' => '01e00c2b39bb3b933723307c442efd02', 'card_token' => '8ef3111ac1093f6ccb817acef7f0845601d0994689a5f57949f94b0d086c7fe2', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Опис |
| Код авторизації |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При невдалій оплаті з 3DS АСИНХРОННИЙ РЕЖИМ
array ( 'action' => 'SALE', 'result' => 'DECLINED', 'status' => 'DECLINED', 'order_id' => '4092002', 'trans_id' => '28076-29879-99538', 'trans_date' => '2020-02-03 20:49:47', 'decline_reason' => 'Declined by processing', 'hash' => '********************************', )
Параметри | Опис |
---|---|
|
|
|
|
|
|
| ID транзакції в системі мерчанта |
| ID транзакції в платіжній системі |
| Дата транзакції. Час в UTC |
| Сума |
| 10 додаткових полів |
| Унікальний ідентифікатор термінала в платіжній системі. |
| Маска картки в форматі ХХХХХХ****ХХХХ |
| Унікальне зашифроване значення номера картки, яке повертатиметься в колбеку під час оплати, верифікації, погашення та виплати коштів на картку. Цей параметр дозволить вам в вашій системі:
|
|
|
| Ознака як буде списуватись комісія з мерчанта:
|
| Сума комісії з мерчанта в ГРН |
| Валюта |
| Причина відмови в оплаті |
| Зашифрований підписк для перевірки достовірності коллбека md5( strtoupper( strrev(email). client_pass. trans_id. strrev( substr(card,0,6). substr(card,-4) ) ) ) Увага! Якщо в запиті на оплату не було вказано |
При помилці в запиті
{ "result":"ERROR", "error_message":"Error description" }
Помилки та рішення
Response: {"result":"ERROR","error_message":"Incorrect sign"}
Вариант 1
Неверно сформирована зашифрованная подпись.
Проверьте верность сформированной подписи. Если ошибку не нашли обратитесь в тех поддержку.
Вариант 2
Добавлены параметры, которые не входят в данный запрос.
Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.
Вариант 3
Неверно зашифрована data
.
Проверить используете ли вы UTF-8 и верный формат параметров.
Response: {"result":"ERROR","error_message":"Empty action"}
Вариант 1
Параметр action
заполнен не верно, пуст, или не на первом месте в списке параметров запроса.
Проверьте список передаваемых параметров. Если ошибку не нашли обратитесь в тех поддержку.
Вариант 2
Запрос отправляется методом GET, а не POST.
Отправить запрос методом POST.
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.
Рекомендуем обратиться в тех саппорт Platon для проверки причины.
Response: {"result":"ERROR","error_message":"Recurring not supported"}
rc_token
заблокирован, подробнее о причинах можно узнать в разделе /wiki/spaces/docs/pages/1323303006
Рекомендуем удалить данный rc_token
из вашей базы данных и повторить верификацию карты для получения rc_token
и возможности проведения транзакций по новому токену.
Response: {"result":"ERROR","error_message":"Initial transaction too old"}
card_token
заблокирован, подробнее о причинах можно узнать в разделе /wiki/spaces/docs/pages/1323303006
Рекомендуем удалить данный card_token
из вашей базы данных и повторить верификацию карты для получения card_token
и возможности проведения транзакций по новому токену.
Response: {"result":"ERROR","error_message":"Account error"}
Вариант 1
Ваш IP адрес не добавлен в наш белый список.
Обратитесь в тех поддержку для добавления вашего IP в белый список.
Вариант 2
Данный функционал вам не подключен.
Обратитесь в тех поддержку для активации функционала.
Вариант 3
Запрос отправлен не на нужную ссылку.
Рекомендуем сверить ссылку для отправки запроса с указаной в нужном разделе документации.
Вариант 4
В запросе указан неверное или несуществующее значение параметра channel_id
.
Проверьте передаваемое значение channel_id
на достоверность или уточните у тех поддержки доступные у вас значение.
Response: {"result":"ERROR","error_message":"Card token not found for current client"}
Отправка запроса по этому card_token
отключена для данного API ключа так как card_token
был получен на другом API ключе.
Обратитесь в тех поддержку для решения данной ситуации.
Response: {"result":"ERROR","error_message":"Incorrect hash"}
Вариант 1
Неверно сформирована зашифрованная подпись.
Проверьте верность сформированной подписи. Если ошибка не найдена обратитесь в тех поддержку.
Вариант 2
Добавлены параметры, которые не входят в данный запрос.
Проверьте список передаваемых параметров. Если ошибка не найдена обратитесь в тех поддержку.
Вариант 3
Запрос был отправлен не с того API ключа по которому был получен rc_token
.
Рекомендуем заменить API ключ на тот, по которому был получен rc_token
.
Response: {"result":"ERROR","error_message":"Duplicate request"}
За одну минуту в систему вами было отправлено несколько одинаковых запросов.
Рекомендуем проверить ваш механизм отправки запросов на наличие задвоения.
Response: {"result":"ERROR","error_message":"Incorrect card_token value"}
Вариант 1
Запрос был отправлен менее чем через 10 минут после получения токена.
Рекомендуем настроить отправку запросов минимум через 10 минут после получения токена. Запрос по которому получена эта ошибка необходимо повторить.
Вариант 2
В параметр card_token
внесено неверное значение.
Рекомендуем проверить верность внесенных данных в поле card_token
полученного из коллбека ранее. Запрос по которому получена эта ошибка необходимо повторить.
Response: {"result":"ERROR","error_message":"Not found card token"}
Вариант 1
Запрос был отправлен менее чем через 10 минут после получения токена.
Рекомендуем настроить отправку запросов минимум через 10 минут после получения токена. Запрос по которому получена эта ошибка необходимо повторить.
Вариант 2
В параметр card_token
внесено неверное значение.
Рекомендуем проверить верность внесенных данных в поле card_token
полученного из коллбека ранее. Запрос по которому получена эта ошибка необходимо повторить.
'decline_reason' => '102: Token is not active'
rc_token
заблокирован, подробнее о причинах можно узнать в разделе /wiki/spaces/docs/pages/1323303006
Рекомендуем удалить данный rc_token
из вашей базы данных и повторить верификацию карты для получения rc_token
и возможности проведения транзакций по новому токену.
'error_message' => 'Wrong credit_date'
credit_date
введен не согласно формата YYYY-MM-DD или указана будущая дата.
Рекомендуем указать в credit_date
прошедшую дату или текущую.
'error_message' => 'Invalid pan'
Invalid pan
введен не верный номер карты.
Сверьте номер карты. Рекомендуем проверять номер карты на действительность перед отправкой в запросе используя алгоритм Луна.
- No labels