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


note

Зміст

Зміст


note

Опис

Опис

Цей метод дозволить розмістити на вашому сайті або додатку окрему кнопку оплати Apple Pay.


note

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

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

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

note

Вимоги

Вимоги


note

Обмеження

Обмеження

Згідно обмежень Apple - Apple Pay працює:


note

Apple Pay API

Apple Pay API

note

Apple Pay API

Apple Pay API

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

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

if (window.ApplePaySession) {
 // The Apple Pay JS API is available.
}

Увага! При створенні вами запиту на Apple в налаштуваннях Apple Pay вам потрібно вказати наступні значення:

supportedNetworks: [ 'masterCard', 'visa' ],
merchantCapabilities: [ 'supports3DS', 'supportsCredit', 'supportsDebit' ]

2. Відобразити кнопку Apple Pay 

3. Створити сесію 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/


note

Приклад інтеграції

Приклад інтеграції

note

API параметри

API параметри

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/post/

Параметр

Значення

Опис

Особливості

action

APPLEPAY

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

client_key

String

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

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

order_id

String

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

Max 255 символів

order_amount

Number

Сума оплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

order_currency

UAH

Валюта

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

order_description

String

Опис

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

Max 1024 символів

payment_token

String

Токен від Apple Pay

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

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

payer_ip

String

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

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

IPv6 на даний момент не підтримується та приведе до помилки

payer_email

String

E-mail платника

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

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

Max 256 символів

payer_phone

String

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

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

Мах 32 символи

term_url_3ds

String

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

Мах 1024 символів

hash

String

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

md5(
  strtoupper(
    strrev($email).
    $client_pass.
    strrev($payment_token)
  )
)

payer_first_name

String

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

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

payer_last_name

String

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

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

payer_middle_name

String

По батькові платника

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

payer_birth_date

String

Дата народження платника 

В форматі “YYYY-MM-DD”

payer_address

String

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

Мах 255 символів
Вкажіть NA, якщо немає даних

payer_address2

String

Додаткова адреса платника

Мах 255 символів
Вкажіть NA, якщо немає даних

payer_country

String

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

Стандарт ISO 3166-1 alpha-2
В форматі "ХХ"
2 символа
Вкажіть NA, якщо немає даних

payer_state

String

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

Стандарт ISO 3166-2
В форматі "ХХ"
2 символа
Вкажіть NA, якщо немає даних

payer_city

String

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

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

payer_zip

String

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

Max 32 символи

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

String

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

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

channel_id

String

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

Дозволяє перенаправляти платежі на інший банківський термінал

async

Y
N

Включити асинхронний режим

В асинхронному режимі обов'язкове використання коллбеків.

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

auth

Y
N

HOLD коштів на картці платника

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


note

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

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

<?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":"MIAGCSqGSIb3DQEHAqCAMIACAQExDTALBglghkgBZQMEAgEwgAYJKoZIhvcNAQcBAACggDCCA+MwggOIoAMCAQICCEwwQUlRnVQ2MAoGCCqGSM49BAMCMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xOTA1MTgwMTMyNTdaFw0yNDA1MTYwMTMyNTdaMF8xJTAjBgNVBAMMHGVjYy1zbXAtYnJva2VyLXNpZ25fVUM0LVBST0QxFDASBgNVBAsMC2lPUyBTeXN0ZW1zMRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMIVd+3r1seyIY9o3XCQoSGNx7C9bywoPYRgldlK9KVBG4NCDtgR80B+gzMfHFTD9+syINa61dTv9JKJiT58DxOjggIRMIICDTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCPyScRPk+TvJ+bE9ihsP6K7/S5LMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlYWljYTMuY3JsMB0GA1UdDgQWBBSUV9tv1XSBhomJdi9+V4UH55tYJDAOBgNVHQ8BAf8EBAMCB4AwDwYJKoZIhvdjZAYdBAIFADAKBggqhkjOPQQDAgNJADBGAiEAvglXH+ceHnNbVeWvrLTHL+tEXzAYUiLHJRACth69b1UCIQDRizUKXdbdbrF0YDWxHrLOh8+j5q9svYOAiQ3ILN2qYzCCAu4wggJ1oAMCAQICCEltL786mNqXMAoGCCqGSM49BAMCMGcxGzAZBgNVBAMMEkFwcGxlIFJvb3QgQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDUwNjIzNDYzMFoXDTI5MDUwNjIzNDYzMFowejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8BcRhBnXZIXVGl4lgQd26ICi7957rk3gjfxLk+EzVtVmWzWuItCXdg0iTnu6CP12F86Iy3a7ZnC+yOgphP9URaOB9zCB9DBGBggrBgEFBQcBAQQ6MDgwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDQtYXBwbGVyb290Y2FnMzAdBgNVHQ4EFgQUI/JJxE+T5O8n5sT2KGw/orv9LkswDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS7sN6hWDOImqSKmd6+veuv2sskqzA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLmFwcGxlLmNvbS9hcHBsZXJvb3RjYWczLmNybDAOBgNVHQ8BAf8EBAMCAQYwEAYKKoZIhvdjZAYCDgQCBQAwCgYIKoZIzj0EAwIDZwAwZAIwOs9yg1EWmbGG+zXDVspiv/QX7dkPdU2ijr7xnIFeQreJ+Jj3m1mfmNVBDY+d6cL+AjAyLdVEIbCjBXdsXfM4O5Bn/Rd8LCFtlk/GcmmCEm9U+Hp9G5nLmwmJIWEGmQ8Jkh0AADGCAYkwggGFAgEBMIGGMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUwIITDBBSVGdVDYwCwYJYIZIAWUDBAIBoIGTMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDQyMTEzMTUwOVowKAYJKoZIhvcNAQk0MRswGTALBglghkgBZQMEAgGhCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIPHvAnHkyERFU/c9thOSKGQdmwY5c04LwEmuj8T2c/mIMAoGCCqGSM49BAMCBEgwRgIhAJi2zLcOZBOxqAFGGV1462qyZJibksVctJ9e1r98/1JNAiEAroZdxPe+ETKywbeVRCaOv0vsH+hzi8WZjp6l0xjFSY4AAAAAAAA=","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);

Postman Collection


note

Тестування

Тестування

Тестування проводиться тільки в бойовому режимі використовуючи реальну картку прив'язану в Apple Pay.


note

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

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


note

Callback & Response

Callback & Response


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

Стандартний режим. Передавати async = N не потрібно.


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

Цей режим активується при передачі параметра async = Y.




note

Помилки та рішення

Помилки та рішення