C2A оплата Apple Pay™ (Server - Server)

Зміст

 

 


Опис

 

Оплата Apple Pay по технології C2A дебет.

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

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

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

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


 

Привести сайт/додаток до відповідності вимогам.
Інтегрувати API 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 зі статусом платежу SUCCESS від PSP Platon.
Повідомити клієнта про успішну/не успішну оплату.

 


 

Створення сертифікатів Apple Pay


 

Відповідно офіційної документації Apple Pay для генерації payment_token необхідно виконати наступні кроки:

  1. Перевірити можливість клієнтом оплати за допомогою Apple Pay 

if (window.ApplePaySession) { // The Apple Pay JS API is available. }
  1. Відобразити кнопку Apple Pay 

  2. Створити сесію Apple Pay

  3. Пройти валідацію сесії Apple Pay

  4. Отримати платіжну авторизацію та платіжний об'єкт (токен) 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/


 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

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

DEBIT_PREPARE_APPLE_PAY

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

 

async
не Обов'язковий

Y
N

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

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

channel_id
не Обов'язковий

String

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

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

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

String

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

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

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

String

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

Max 32 символи

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

Number

Сума оплати

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

UAH

Валюта оплати

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

String

Опис оплати

Max 255 символов

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

String

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

Max 32 символів без пробілів
Вкажіть "NA" якщо немає даних

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

String

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

Max 32 символів без пробілів
Вкажіть "NA" якщо немає даних

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

String

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

Max 256 символів
Вкажіть "NA" якщо немає даних

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

String

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

Стандарт ISO 3166-1 alpha-2
В форматі "ХХ"
2 символа

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

String

Штат платника

Стандарт ISO 3166-2
В форматі "ХХ"
2 символа

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

String

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

Max 32 символи
Вкажіть "NA" якщо немає даних

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

String

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

Max 32 символи

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

String

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

Max 255 символа

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

String

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

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

Number

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

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

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

String

Токен Apple Pay

Відформатований по прикладу вище токен отриманий від Apple Pay

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

Y
N

Для формування card_token

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

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

String

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

Max 255 символів

itn
не Обов'язковий

String

ІПН платника

 

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

String

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

sha1( $pass. strtolower( implode( '', $action. $client_key. $order_id. $order_amount. $order_currency. $order_description. $payment_token. $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. $itn ) ) )

 

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

Параметр

Значення

Опис

Особливості

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

DEBIT_RUN

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

 

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

String

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

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

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

String

ID оплати в системі PSP Platon

 

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

String

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

 

 


 

Related pages