Інтеграція з ApplePay: відмінності між версіями

Матеріал з apidocs
Перейти до: навігація, пошук
Немає опису редагування
Немає опису редагування
 
(Не показано 56 проміжних версій цього користувача)
Рядок 20: Рядок 20:
<br>
<br>


== Реєстрація та перевірка в системі ApplePay ==
=== Реєстрація та перевірка в системі ApplePay ===
----
----
# '''Зареєструйте MerchantID та надішліть до EasyPay:'''
# '''Зареєструйте MerchantID та надішліть до EasyPay:'''
Рядок 41: Рядок 41:
<strong>Приклад:</strong> сайт <code>shop.ua</code> → <code>merchant.ua.shop</code>
<strong>Приклад:</strong> сайт <code>shop.ua</code> → <code>merchant.ua.shop</code>
</div>
</div>
<br>


# '''Отримайте від EasyPay сформований CSR-файл, який буде необхідний для подальших кроків.'''
# '''Отримайте від EasyPay сформований CSR-файл, який буде необхідний для подальших кроків.'''
# '''Сформуйте Apple Pay Payment Processing Certificate та надішліть до EasyPay:'''
# '''Сформуйте Apple Pay Payment Processing Certificate та надішліть до EasyPay:'''
## Увійдіть до свого облікового запису Apple Developer Account.
## Увійдіть до свого облікового запису [https://developer.apple.com/ Apple Developer Account].
## Перейдіть до розділу «Certificates, Identifiers & Profiles».
## У розділі "Identifiers" виберіть "Merchant IDs".
## Виберіть створений вами Merchant ID та натисніть «Edit».
## У розділі Apple Pay Payment Processing Certificate, натисніть "Create Certificate".
## На наступному екрані натисніть Continue.
## Візьміть отриманий від EasyPay CSR-файл і завантажте його на сайт, натиснувши Choose File, а потім Continue.
## Завантажте згенерований сертифікат.
## Надішліть сертифікат (файл apple_pay.cer) до EasyPay
<br>
 
== Технічна інтеграція з ApplePay ==
----1. Щоб інтегрувати Apple Pay у мобільний додаток, дотримуйтесь інструкцій за посиланням: [https://developer.apple.com/documentation/passkit/apple_pay. developer.apple.com]
 
'''<br />
 
'''Приклад відповіді ApplePay'''
 
'''<syntaxhighlight lang="json">
{
"paymentData":
  {
    "version":"EC_v1",    "data":"FDXK/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ/dGK9UZDP/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp/clv4",    "signature":"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=",
    "header":
    {      "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==",
      "publicKeyHash":"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=",
      "transactionId":"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4"
    }
  },
  "paymentMethod":
  {
    "displayName":"MasterCard 5179",
    "network":"MasterCard",
    "type":"debit"
  },  "transactionIdentifier":"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4"
}
</syntaxhighlight>'''
 
2. Надішліть''' <code>paymentData</code>''' в поле '''<code>userPaymentInstrument / token в Easypay</code> ([[MerchantAPI#Створення замовлення|Створення замовлення]]).
<br>
''' Приклад запиту createOrder:<syntaxhighlight lang="json">
{
  "order":{
    "serviceKey":"MERCHANT-TEST",
    "orderId":"test_20210309-171148",
    "description":"Test payment",
    "amount":"1"
  },
  "userPaymentInstrument":{
    "instrumentType":"ApplePay",
    "token":"{\"paymentData\": {\"version\":\"EC_v1\",  \"data\":\"FDXK\/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8\/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV\/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ\/dGK9UZDP\/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp\/clv4\",  \"signature\":\"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=\",\"header\":{  \"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo\/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==\", \"publicKeyHash\":\"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=\",\"transactionId\":\"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4\"}  },  \"paymentMethod\":  {  \"displayName\":\"MasterCard 5179\",\"network\":\"MasterCard\",\"type\":\"debit\"  },  \"transactionIdentifier\":\"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4\"}",
    "gatewayMerchantId":"{ApplePayMerchantId}"
  }
}
</syntaxhighlight>
 
== Оплата ApplePay з сайту ==
----'''Вимоги:'''
 
# Необхідно мати акаунт у [https://developer.apple.com/ Apple Developer], до якого потрібно зареєструвати індивідуальний [https://developer.apple.com/help/account#/devb2e62b839?sub=devf31990e3f Merchant ID].
# Необхідно дотримуватися [https://developer.apple.com/apple-pay/marketing/ вимог до брендування].
<br>
 
=== Реєстрація та перевірка в системі Apple Pay ===
----
 
# '''Зареєструйте MerchantID та надішліть до EasyPay:'''
## Увійдіть до свого облікового запису [https://developer.apple.com/ Apple Developer Account].
## Перейдіть до розділу «Certificates, Identifiers & Profiles».
## У розділі "Identifiers" виберіть "Merchant IDs".
## Додайте новий Merchant ID, натиснувши на "+" у верхньому правому куті екрана.
## Заповніть поля * і натисніть «Continue».
## Натисніть Register, щоб підтвердити введені дані.
## Повідомте EasyPay ваш MerchantID.
<br>
<div style="background-color:#FFF8E1; border:1px solid #F9A825; border-radius:8px; padding:12px; width:100%; box-sizing:border-box;">
<strong style="font-size:18px;">💡 Примітка</strong><br>
 
<br>
<code>Description</code> — опис.<br>
<code>Identifier</code> — домен вашого сайту у зворотному порядку з додаванням merchant на початку.<br>
<br>
<strong>Приклад:</strong> сайт <code>shop.ua</code> → <code>merchant.ua.shop</code>
</div>
<br>
 
# '''Отримайте від EasyPay сформований CSR-файл, який буде необхідний для подальших кроків.'''
# '''Сформуйте Apple Pay Payment Processing Certificate та надішліть до EasyPay:'''
## Увійдіть до свого облікового запису [https://developer.apple.com/ Apple Developer Account].
## Перейдіть до розділу «Certificates, Identifiers & Profiles».
## Перейдіть до розділу «Certificates, Identifiers & Profiles».
## У розділі "Identifiers" виберіть "Merchant IDs".
## У розділі "Identifiers" виберіть "Merchant IDs".
Рядок 63: Рядок 152:
## Збережіть файл на сервері від Apple.
## Збережіть файл на сервері від Apple.
## Натисніть Verify.
## Натисніть Verify.
<br>
<div style="background-color:#FFF8E1; border:1px solid #F9A825; border-radius:8px; padding:12px; width:100%; box-sizing:border-box;">
<strong>💡 Примітка</strong><br><br>
Домен повинен підтримувати HTTPS.
</div>
<br>
# Створіть Apple Pay Merchant Identity Certificate:
## Увійдіть до свого облікового запису [https://developer.apple.com/ Apple Developer Account.]
## Перейдіть до розділу «Certificates, Identifiers & Profiles».
## У розділі "Identifiers" виберіть "Merchant IDs".
## Виберіть створений вами Merchant ID та натисніть «Edit».
## У розділі Apple Pay Merchant Identity Certificate натисніть Create Certificate.
## Виконайте дії, описані на сайті Apple, а потім натисніть «Continue».
## Скопіюйте згенерований CSR-файл, вибравши Choose File, а потім Continue.
## Завантажте згенерований сертифікат (merchant_id.cer) і відкрийте його у програмі Keychain Access на комп'ютері Mac.
## У Keychain Access виберіть сертифікат, що імпортується, та експортувати його у формат .p12 (Personal Information Exchange).
## Виконайте команду: openssl pkcs12 -in merchant_id.p12 -out merchant_id.pem -nodes -clcerts
## Скопіюйте створений сертифікат у форматі PEM на сервер. Це буде потрібно для створення [https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session Apple Pay Payment Session] в процесі [[MerchantAPI#Інтеграція з ApplePay:~:text=Session в процесі-,перевірки магазину,-.|перевірки магазину.]]
<br>
== Технічна інтеграція з ApplePay ==
----Для створення сертифікату (-ів) від Партнера потрібні:
# Country Name (2 letter code) [AU]: ?
# State or Province Name (full name) [Some-State]: ?
# Locality Name (eg, city) []: ?
# Organization Name (eg, company) [Internet Widgits Pty Ltd]: ?
# Organizational Unit Name (eg, section) []: ?
# Common Name (e.g. server FQDN or YOUR name) []:?
# Email Address []: ?
<br>
'''''Повідомте, чи буде оплата тільки в додатку, або також і на WEB.'''''
Щоб інтегрувати Apple Pay на сайт, дотримуйтесь [[MerchantAPI#Інтеграція з ApplePay:~:text=дотримуйтесь інструкцій за-,посиланням,-Перевірте можливість оплати|інструкцій за посиланням]]
1. Перевірте можливість оплати з Apple Pay. Виконується перевірка, підтримує або браузер оплату з Apple Pay, а також є у Wallet картку, якою можна оплачувати.
<br>
<syntaxhighlight lang="javascript">
if (window.ApplePaySession) {
    var promise = ApplePaySession.canMakePaymentsWithActiveCard({YOUR_MERCHANT_ID});
    promise.then(function(canMakePayments) {
        if (canMakePayments)
    });
} else {
}
</syntaxhighlight>2. Сформуйте структуру платежу для сесії<syntaxhighlight lang="javascript">
document.getElementById("apple-pay-button").onclick = function(event) {
    var paymentRequest = {
        currencyCode: 'UAH',
        countryCode: 'UA',
        total: {
            label: {PRODUCT_NAME},
            amount: {PAYMENT_AMOUNT}
        },
        merchantCapabilities: ['supports3DS'],
        supportedNetworks: ['masterCard', 'visa']
    };
var session = new ApplePaySession(3, paymentRequest)
</syntaxhighlight>3. Відкрити платіжну сесію з Apple, отримати від них paymentData:
<p style="border: 1px solid #9ACD32; background-color: rgba(144, 238, 144, 0.5); padding: 10px; border-radius: 8px; font-family: Arial, sans-serif; font-size: 14px; font-weight: normal; position: relative; padding-left: 80px;">
    <span style="position: absolute; top: 10px; left: 10px; background-color: #006400; color: white; padding: 2px 12px; border-radius: 4px; font-size: 14px; font-weight: bold;">POST</span>
    <span style="margin-left: 5px; font-weight: bold; font-size: 16px;">/api/applePay/validateSession</span><syntaxhighlight lang="json" line="1">
headers
--header "Content-Type: application/json"
--header "AppId: cd7fde18-15db-4d94-a91b-7cf8edd81209"
--header "PageId: 3e7bf353-417a-410c-a22e-df8bdcccb760"
--header "PartnerKey: easypay-test"
--header "locale: ua"
body
{
  "url": "https://apple-pay-gateway.apple.com/paymentservices/startSession",
  "merchantIdentifier": "string", /ідентифікатор мерчанту в Apple/
  "displayName": "test", /ідентифікатор магазина/послуги/товару (латиниці) ; буде відображатися в toolBar/
  "initiative": "web", /Канал оплати/
  "initiativeContext": "string" /Доменне ім’я, Доменное имя, пов'язане із сертифікатом Apple Identity/
}
</syntaxhighlight><blockquote>*response з цього методу передається в сесію Apple, після чого при успішній авторизації платежу, повернеться до необхідний для завершення платежу.</blockquote>4. Приклад відповіді ApplePay<syntaxhighlight lang="json" line="1">
{
"paymentData":
  {
    "version":"EC_v1",    "data":"FDXK/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ/dGK9UZDP/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp/clv4",    "signature":"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=",
    "header":
    {      "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==",
      "publicKeyHash":"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=",
      "transactionId":"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4"
    }
  },
  "paymentMethod":
  {
    "displayName":"MasterCard 5179",
    "network":"MasterCard",
    "type":"debit"
  },  "transactionIdentifier":"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4"
}
</syntaxhighlight>5. Надішліть <code>paymentData</code> в поле <code>userPaymentInstrument / token</code> в Easypay ([[MerchantAPI#Створення замовлення|Створення замовлення]]). Перед цим потрібно викликати метод EasyPayApi CreateApp.
'''Приклад запиту  createOrder:'''<syntaxhighlight lang="json" line="1">
{
  "order":{
    "serviceKey":"MERCHANT-TEST",
    "orderId":"test_20210309-171148",
    "description":"Test payment",
    "amount":"1"
  },
  "userPaymentInstrument":{
    "instrumentType":"ApplePay",
    "token":"{\"paymentData\": {\"version\":\"EC_v1\",  \"data\":\"FDXK\/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8\/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV\/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ\/dGK9UZDP\/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp\/clv4\",  \"signature\":\"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=\",\"header\":{  \"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo\/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==\", \"publicKeyHash\":\"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=\",\"transactionId\":\"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4\"}  },  \"paymentMethod\":  {  \"displayName\":\"MasterCard 5179\",\"network\":\"MasterCard\",\"type\":\"debit\"  },  \"transactionIdentifier\":\"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4\"}",
    "gatewayMerchantId":"{YOUR_MERCHANT_ID}"
  }
}
</syntaxhighlight>
<div style="width: 100%; display: flex; justify-content: space-between; gap: 16px; box-sizing: border-box; padding: 8px 0;">
  <!-- Ліва кнопка -->
  <div style="
    position: relative;
    flex: 1;
    min-width: 150px;
    background: rgba(135, 206, 250, 0.1);
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid #007BFF;
    color: #007BFF;
    font-weight: bold;
    font-size: 1em; /* пропорційний розмір */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
  ">
<!-- Текст у кутку --><span style="position: absolute; top: 6px; left: 8px;">← Назад</span>
    <!-- Основний текст -->
<br>
[[Інтеграція з ApplePay та GooglePay]]
</div>
  <!-- Права кнопка -->
  <div style="
    position: relative;
    flex: 1;
    min-width: 150px;
    background: rgba(135, 206, 250, 0.1);
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid #007BFF;
    color: #007BFF;
    font-weight: bold;
    font-size: 1em; /* пропорційний розмір */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
  ">
<span style="position: absolute; top: 6px; right: 8px;">Далі →</span>
    <!-- Основний текст -->
[[Інтеграція з GooglePay]]
  </div>
</div>

Поточна версія на 12:44, 14 серпня 2025

Merchant API

Головна сторінка

(Токенізація з передачею даних картки у запиті

Загальні вимоги


  1. Ваш сайт повинен працювати за схемою HTTPS та підтримувати протокол TLS 1.2;
  2. Потрібно погодитись з умовами надання послуг Apple Pay;
  3. Необхідно укласти договір із Easypay.ua.


Оплата з платіжної сторінки EasyPay


При такому способі підключення немає потреби у додаткових інтеграціях. Кнопка Apple Pay буде відображена на сторінці оплати EasyPay


Оплата ApplePay з додатку


Вимоги:

  1. Необхідно мати акаунт у Apple Developer, в який потрібно зареєструвати індивідуальний Merchant ID
  2. Необхідно дотримуватися вимоги до брендування


Реєстрація та перевірка в системі ApplePay


  1. Зареєструйте MerchantID та надішліть до EasyPay:
    1. Увійдіть до свого облікового запису Apple Developer Account.
    2. Перейдіть до розділу «Certificates, Identifiers & Profiles».
    3. У розділі "Identifiers" виберіть "Merchant IDs".
    4. Додайте новий Merchant ID, натиснувши на "+" у верхньому правому куті екрана.
    5. Заповніть поля * і натисніть «Continue».
    6. Натисніть Register, щоб підтвердити введені дані.
    7. Повідомте EasyPay ваш MerchantID.


💡 Примітка


Description — опис.
Identifier — домен вашого сайту у зворотному порядку з додаванням merchant на початку.

Приклад: сайт shop.uamerchant.ua.shop


  1. Отримайте від EasyPay сформований CSR-файл, який буде необхідний для подальших кроків.
  2. Сформуйте Apple Pay Payment Processing Certificate та надішліть до EasyPay:
    1. Увійдіть до свого облікового запису Apple Developer Account.
    2. Перейдіть до розділу «Certificates, Identifiers & Profiles».
    3. У розділі "Identifiers" виберіть "Merchant IDs".
    4. Виберіть створений вами Merchant ID та натисніть «Edit».
    5. У розділі Apple Pay Payment Processing Certificate, натисніть "Create Certificate".
    6. На наступному екрані натисніть Continue.
    7. Візьміть отриманий від EasyPay CSR-файл і завантажте його на сайт, натиснувши Choose File, а потім Continue.
    8. Завантажте згенерований сертифікат.
    9. Надішліть сертифікат (файл apple_pay.cer) до EasyPay


Технічна інтеграція з ApplePay


1. Щоб інтегрувати Apple Pay у мобільний додаток, дотримуйтесь інструкцій за посиланням: developer.apple.com


Приклад відповіді ApplePay

{
 "paymentData":
  {
    "version":"EC_v1",    "data":"FDXK/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ/dGK9UZDP/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp/clv4",    "signature":"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=",
    "header":
    {      "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==",
      "publicKeyHash":"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=",
      "transactionId":"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4"
    }
  },
  "paymentMethod":
  {
    "displayName":"MasterCard 5179",
    "network":"MasterCard",
    "type":"debit"
  },  "transactionIdentifier":"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4"
}

2. Надішліть paymentData в поле userPaymentInstrument / token в Easypay (Створення замовлення).

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

{
  "order":{
    "serviceKey":"MERCHANT-TEST",
    "orderId":"test_20210309-171148",
    "description":"Test payment",
    "amount":"1"
  },
  "userPaymentInstrument":{
    "instrumentType":"ApplePay",
    "token":"{\"paymentData\": {\"version\":\"EC_v1\",  \"data\":\"FDXK\/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8\/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV\/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ\/dGK9UZDP\/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp\/clv4\",  \"signature\":\"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=\",\"header\":{  \"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo\/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==\", \"publicKeyHash\":\"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=\",\"transactionId\":\"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4\"}  },  \"paymentMethod\":  {   \"displayName\":\"MasterCard 5179\",\"network\":\"MasterCard\",\"type\":\"debit\"  },  \"transactionIdentifier\":\"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4\"}",
    "gatewayMerchantId":"{ApplePayMerchantId}"
  }
}

Оплата ApplePay з сайту


Вимоги:

  1. Необхідно мати акаунт у Apple Developer, до якого потрібно зареєструвати індивідуальний Merchant ID.
  2. Необхідно дотримуватися вимог до брендування.


Реєстрація та перевірка в системі Apple Pay


  1. Зареєструйте MerchantID та надішліть до EasyPay:
    1. Увійдіть до свого облікового запису Apple Developer Account.
    2. Перейдіть до розділу «Certificates, Identifiers & Profiles».
    3. У розділі "Identifiers" виберіть "Merchant IDs".
    4. Додайте новий Merchant ID, натиснувши на "+" у верхньому правому куті екрана.
    5. Заповніть поля * і натисніть «Continue».
    6. Натисніть Register, щоб підтвердити введені дані.
    7. Повідомте EasyPay ваш MerchantID.


💡 Примітка


Description — опис.
Identifier — домен вашого сайту у зворотному порядку з додаванням merchant на початку.

Приклад: сайт shop.uamerchant.ua.shop


  1. Отримайте від EasyPay сформований CSR-файл, який буде необхідний для подальших кроків.
  2. Сформуйте Apple Pay Payment Processing Certificate та надішліть до EasyPay:
    1. Увійдіть до свого облікового запису Apple Developer Account.
    2. Перейдіть до розділу «Certificates, Identifiers & Profiles».
    3. У розділі "Identifiers" виберіть "Merchant IDs".
    4. Виберіть створений вами Merchant ID та натисніть «Edit».
    5. У розділі Apple Pay Payment Processing Certificate, натисніть "Create Certificate".
    6. На наступному екрані натисніть Continue.
    7. Візьміть отриманий від EasyPay CSR-файл і завантажте його на сайт, натиснувши Choose File, а потім Continue.
    8. Завантажте згенерований сертифікат.
    9. Надішліть сертифікат (файл apple_pay.cer) до EasyPay
  3. Зареєструйте та підтвердіть свій домен:
    1. Увійдіть до свого облікового запису Apple Developer Account.
    2. Перейдіть до розділу «Certificates, Identifiers & Profiles».
    3. У розділі "Identifiers" виберіть "Merchant IDs".
    4. Виберіть створений вами Merchant ID та натисніть «Edit».
    5. У розділі "Merchant Domains" натисніть "Add Domain".
    6. Введіть ім'я домену та натисніть "Continue" *.
    7. Завантажте файл apple-developer-merchantid-domain-association.txt.
    8. Збережіть файл на сервері від Apple.
    9. Натисніть Verify.


💡 Примітка

Домен повинен підтримувати HTTPS.


  1. Створіть Apple Pay Merchant Identity Certificate:
    1. Увійдіть до свого облікового запису Apple Developer Account.
    2. Перейдіть до розділу «Certificates, Identifiers & Profiles».
    3. У розділі "Identifiers" виберіть "Merchant IDs".
    4. Виберіть створений вами Merchant ID та натисніть «Edit».
    5. У розділі Apple Pay Merchant Identity Certificate натисніть Create Certificate.
    6. Виконайте дії, описані на сайті Apple, а потім натисніть «Continue».
    7. Скопіюйте згенерований CSR-файл, вибравши Choose File, а потім Continue.
    8. Завантажте згенерований сертифікат (merchant_id.cer) і відкрийте його у програмі Keychain Access на комп'ютері Mac.
    9. У Keychain Access виберіть сертифікат, що імпортується, та експортувати його у формат .p12 (Personal Information Exchange).
    10. Виконайте команду: openssl pkcs12 -in merchant_id.p12 -out merchant_id.pem -nodes -clcerts
    11. Скопіюйте створений сертифікат у форматі PEM на сервер. Це буде потрібно для створення Apple Pay Payment Session в процесі перевірки магазину.


Технічна інтеграція з ApplePay


Для створення сертифікату (-ів) від Партнера потрібні:

  1. Country Name (2 letter code) [AU]: ?
  2. State or Province Name (full name) [Some-State]: ?
  3. Locality Name (eg, city) []: ?
  4. Organization Name (eg, company) [Internet Widgits Pty Ltd]: ?
  5. Organizational Unit Name (eg, section) []: ?
  6. Common Name (e.g. server FQDN or YOUR name) []:?
  7. Email Address []: ?


Повідомте, чи буде оплата тільки в додатку, або також і на WEB.

Щоб інтегрувати Apple Pay на сайт, дотримуйтесь інструкцій за посиланням

1. Перевірте можливість оплати з Apple Pay. Виконується перевірка, підтримує або браузер оплату з Apple Pay, а також є у Wallet картку, якою можна оплачувати.


if (window.ApplePaySession) {
    var promise = ApplePaySession.canMakePaymentsWithActiveCard({YOUR_MERCHANT_ID});
    promise.then(function(canMakePayments) {
        if (canMakePayments)
    });
} else {
}

2. Сформуйте структуру платежу для сесії

document.getElementById("apple-pay-button").onclick = function(event) {
    var paymentRequest = {
        currencyCode: 'UAH',
        countryCode: 'UA',
        total: {
            label: {PRODUCT_NAME},
            amount: {PAYMENT_AMOUNT}
        },
        merchantCapabilities: ['supports3DS'],
        supportedNetworks: ['masterCard', 'visa']
    };

var session = new ApplePaySession(3, paymentRequest)

3. Відкрити платіжну сесію з Apple, отримати від них paymentData:

POST /api/applePay/validateSession

headers 

--header "Content-Type: application/json"
--header "AppId: cd7fde18-15db-4d94-a91b-7cf8edd81209" 
--header "PageId: 3e7bf353-417a-410c-a22e-df8bdcccb760"
--header "PartnerKey: easypay-test"
--header "locale: ua"

body
{
  "url": "https://apple-pay-gateway.apple.com/paymentservices/startSession",
  "merchantIdentifier": "string", /ідентифікатор мерчанту в Apple/
  "displayName": "test", /ідентифікатор магазина/послуги/товару (латиниці) ; буде відображатися в toolBar/
  "initiative": "web", /Канал оплати/
  "initiativeContext": "string" /Доменне ім’я, Доменное имя, пов'язане із сертифікатом Apple Identity/
}

*response з цього методу передається в сесію Apple, після чого при успішній авторизації платежу, повернеться до необхідний для завершення платежу.

4. Приклад відповіді ApplePay

{
 "paymentData":
  {
    "version":"EC_v1",    "data":"FDXK/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ/dGK9UZDP/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp/clv4",    "signature":"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=",
    "header":
    {      "ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==",
      "publicKeyHash":"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=",
      "transactionId":"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4"
    }
  },
  "paymentMethod":
  {
    "displayName":"MasterCard 5179",
    "network":"MasterCard",
    "type":"debit"
  },  "transactionIdentifier":"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4"
}

5. Надішліть paymentData в поле userPaymentInstrument / token в Easypay (Створення замовлення). Перед цим потрібно викликати метод EasyPayApi CreateApp. Приклад запиту  createOrder:

{
  "order":{
    "serviceKey":"MERCHANT-TEST",
    "orderId":"test_20210309-171148",
    "description":"Test payment",
    "amount":"1"
  },
  "userPaymentInstrument":{
    "instrumentType":"ApplePay",
    "token":"{\"paymentData\": {\"version\":\"EC_v1\",  \"data\":\"FDXK\/fkIXGh07D5QU5eUK3ZK8BxKk6syu+Hf0DH6DBZ8\/loNHFWHULxsmfIAyaKzvkUjm2dHaR36pS4x8UXuQ3JhzeB7AfDmZsP8JcL16OOyZKZP3JjOwdkUVvzUyPWtjtlrtXDaBmJ5jPcT8bgnLZV\/7RcC9HpRkdmUqVyJ042wAvPNxF7SVt57PcMyMeccVL6yWUk6N2oV7ESFoGVbAeJdpn5zZT8lebigrnhZRhvwoJ5ZJ\/dGK9UZDP\/swhH8nMLjK620Wu9rvidhsSheJCwM2sCH27fKpeEO2x+vWaLlL9ukwDms9ciOGvSyb+tDvRD9MheecGri1XCC6DxQT5JkHDH7mi1vev0QFjjVY6bmh26iNC0lIB4FKVznNv03yjkKNJhEMbp\/clv4\",  \"signature\":\"UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuYXBwbGUuY29tL2FwcGxlcm9vdGNhZzMuY3JsMA4GA1UdDwEB\/wQEAwIBBjAQBgoqhkJvjg3qQ0QAAAAAAAA=\",\"header\":{  \"ephemeralPublicKey\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXaMJN7PRXhkoMa1n1wOnut4KIkIX0WuyXenzRukdDUzo\/GZ+TRqTSPjZDOPoZkisqifaroXUJZP9xCUlJQ3iqQ==\", \"publicKeyHash\":\"48145ri0BI4zYNGguvfW+7qJc3kQlcGdil64a4cg+Ag=\",\"transactionId\":\"cd80b9fc31c9a850c14c697bd4c258aa51e63bf72bba46394eebbc3fae1b58e4\"}  },  \"paymentMethod\":  {   \"displayName\":\"MasterCard 5179\",\"network\":\"MasterCard\",\"type\":\"debit\"  },  \"transactionIdentifier\":\"CD80B9FC31C9A850C14C697BD4C258AA51E63BF72BBA46394EEBBC3FAE1B58E4\"}",
    "gatewayMerchantId":"{YOUR_MERCHANT_ID}"
  }
}