Як працює?
            
            
            Інтеграція
При такому способі немає необхідності в додаткових інтеграції. Кнопка Apple Pay буде відображена на сторінці WayForPay. Якщо Ви вже зареєстровані в WayForPay метод оплати буде увімкнено автоматично. Керувати методами оплати можна в Особистому кабінеті, в меню "Платіжні методи".
При такій інтеграції необхідно буде пройти ряд процедур і перевірок для підключення. Необхідно подати заявку, а також сайт або додаток повинні відповідати ряду вимог. Ваш сайт повинен працювати за схемою HTTPS і підтримувати протокол TLS 1.2.
Пряме підключення через Apple Pay API
Необхідні кроки для використання Apple Pay:
У консолі Apple Developer Account, перейдіть у розділ «Certificates, IDs & Profiles», далі «Merchant IDs» та пройдіть реєстрацію нового Merchant ID: в полі Description вказується опис; у полі Identifier слід вказати домен вашого сайту в зворотному порядку з додаванням «merchant» на початку (наприклад, сайт shop.ua, то Identifier буде виглядати так - merchant.ua.shop).
                На адресу [email protected] напишіть лист, вказавши зареєстрований в Apple Developer Account ваш Merchant ID.                 
                Служба підтримки сформує сертифікат і відправить Вам зворотнім листом. Далі в консолі Apple Developer створіть сертифікат Apple Pay Payment Processing Certificate і передайте в нашу службу підтримки.            
                У консолі Apple Developer Account додайте домени для кожного сайту, де буде здійснюватися прийом оплати через Apple Pay. Сайти повинні працювати за схемою HTTPS і підтримувати протокол TLS 1.2. 
                
                Підтвердіть володіння доменами.            
Пряма інтеграція Apple Pay на сайті
if (window.ApplePaySession) {
    var promise = ApplePaySession.canMakePaymentsWithActiveCard({YOUR_MERCHANT_ID});
    promise.then(function(canMakePayments) {
        if (canMakePayments) {
            //картку додано, можно розпочати сесію        }
    });
} else {
    //неможливо оплатити}
    
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);
    
session.onvalidatemerchant = function(event) {
    var promise = validateMerchant(event.validationURL);
    promise.then(function(merchantSession) {
        session.completeMerchantValidation(merchantSession);
    });
}
function validateMerchant(validationURL) {
    return new Promise(function(resolve, reject) {
        var applePayPayload = {
            'merchantId': {YOUR_MERCHANT_ID},
            'validationURL': {YOUR_VALIDATION_URL},
            'body': {
                'merchantIdentifier': {YOUR_MERCHANT_ID},
                'domainName': {YOUR_DOMAIN_NAME},
                'displayName': {PRODUCT_NAME}
            }
        };
        var xhr = new XMLHttpRequest();
        xhr.onload = function() {
            var data = JSON.parse(this.responseText);
            resolve(data);
        };
        xhr.onerror = reject;
        xhr.open('POST', merchantValidationEndpoint, true);
        xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
        xhr.send(JSON.stringify(applePayPayload));
    });
}
    4. Запускаємо сесію і обробляємо оплату
session.onpaymentauthorized = function(event) {
//після отримання токену передаємо його wayforpay
session.completePayment(ApplePaySession.STATUS_SUCCESS);
}
session.begin();
    Приклад js коду:
//в прикладі використовується бібліотека jquery//додаткові скрипти прописувати не потрібно, всі об'єкти для платежів Apple Pay вже є в браузері Safari
if (window.ApplePaySession) { //перевірка пристрою    var merchantIdentifier = 'Ваш Apple Merchant ID';
    var promise = ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);
    promise.then(function (canMakePayments) {
        if (canMakePayments) {
            $('#apple-pay').show(); //кнопка Apple Pay        }
    });
}
$('#apple-pay').click(function () { //обробник кнопки    var request = {
        // requiredShippingContactFields: ['email'], //Розкоментуйте, якщо вам потрібен e-mail. Також можна запросити postalAddress, phone, name.        countryCode: 'UA',
        currencyCode: 'UAH',
        supportedNetworks: ['visa', 'masterCard'],
        merchantCapabilities: ['supports3DS'],
        //Призначення платежу вказуйте тільки латиницею!        total: { label: 'Test', amount: '1.00' },
    }
    var session = new ApplePaySession(1, request);
    // обробник події для створення merchant session.    session.onvalidatemerchant = function (event) {
        var data = {
            validationUrl: event.validationURL
        };
        // надішліть запит на ваш сервер        // для запуску сесії        $.post("/ApplePay/StartSession", data).then(function (result) {
            session.completeMerchantValidation(result.Model);
        });
    };
    // обробник події авторизації платежу    session.onpaymentauthorized = function (event) {
        //var email = event.payment.shippingContact.emailAddress; //якщо була запитана адреса e-mail        //var phone = event.payment.shippingContact.phoneNumber; //якщо був запитаний телефон        //всі варіанти дивіться на сайте https://developer.apple.com/reference/applepayjs/paymentcontact
        var data = {
            cryptogram: JSON.stringify(event.payment.token)
        };
        //надішліть запит на ваш сервер, а далі виконайте запит Charge api wayforpay.com        //для проведення оплати        $.post("/ApplePay/Pay", data).then(function (result) {
            var status;
            if (result.Success) {
                status = ApplePaySession.STATUS_SUCCESS;
            } else {
                status = ApplePaySession.STATUS_FAILURE;
            }
            session.completePayment(status);
        });
    };
    // Початок сесії Apple Pay    session.begin();
});
    Приклад набору даних, які відправляються методом Charge wayforpay api
{
    "apiVersion":1,
    "transactionType":"CHARGE",
    "merchantAccount":"test_merch_n1",
    "merchantDomainName":"www.ggg.com",
    "orderReference":"A550500763641",
    "orderDate":1550500763,
    "amount":1,
    "currency":"UAH",
    "productName":[
        "dung W100F",
        "Sdung d 7.0 Black"
    ],
    "productPrice":[
        21.1,
        30.99
    ],
    "productCount":[
        1,
        2
    ],
    "clientFirstName":"Kgwed",
    "clientLastName":"Antnd",
    "clientCountry":"UKR",
    "clientEmail":"[email protected]",
    "clientPhone":"380612527744",
    "clientIpAddress":"127.0.0.1",
    "merchantSignature":"cdd678b727be03c6810f98a551a3faa0",
    "merchantTransactionType":"SALE",
    "merchantTransactionSecureType":"NON3DS",
    "applePayString":"{"version":"EC_v1","data":"tB2ubO0fbh39SWRNB9HUEo1XjbSz65PjJl1z6VunEcIES1aLamgmdhkWRqFLcucGH5cO21magwmOXqCjip1xX83LM9okiyRXe2Rssmrb5by5OkHZeafSioqaq0n7IjDqPTu0gwtwAzpqe+0gfSnDa+M0hVWcbxe7FgXhQxLQCa7vGVbzI+d9R4Y3PdPPVIWNW9i09McNZ4Sc5xqGbHEgJ28z0K/3s2yR0O82mlxBe5SSvfTcf7rlSNBdmDq8xMYSapjv3U5YmBBAErxdaAU7bWmvEGkjONCiBJUHQzwqEhQDAnivKRTI/LiSfMs3Vv53+Vk6FHGc6DxiAClmAXBxu+Z2W+iTlzI8LYzZb4PNc6F691Ca7kfF7YIsRY+qb/rgKwsaFfHqi26cUoEV","signature":"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID4jCCA4igAwIBAgIIJEPyqAad9XcwCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwd92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAMEUCIHKKnw+Soyq5mXQr1V62c0BXKpaHodYu9TWXEPUWPpbpAiEAkTecfW6+W5l0r0ADfzTCPq2YtbS39w01XIayqBNy8bEwggLuMIICdaADAgECAghJbS+/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABPAXEYQZ12SF1RpeJYEHduiAou/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/VEWjgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LWFwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7/S5LMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5jb20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAMCA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwowV3bF3zODuQZ/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggGMMIIBiAIBATCBhjB6MS4wLAYDVQQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCCRD8qgGnfV3MA0GCWCGSAFlAwQCAQUAoIGVMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE5MDIxNTEwMzMyNVowKgYJKoZIhvcNAQk0MR0wGzANBglghkgBZQMEAgEFAKEKBggqhkjOPQQDAjAvBgkqhkiG9w0BCQQxIgQgDARTlPaUQwgOAWGrBpdkYCh+Yt9PR+QNrJML+rsAliowCgYIKoZIzj0EAwIERzBFAiEA9pKsQLRkwftlXnmLkTCrmFMyvi+biVCtCpizmzWoMwECIFi3+v7qhI/o/RKUbhYR6JoBUm1GswjzXhIXZiGcMq58AAAAAAAA","header":{"ephemeralPublicKey":"MFkwDQgAE88rVlkeu4xpPqMWDw59BRYO+zqqlCjcfLO3mE0/S9xhKZJfmIEcJlxtDJ1hwQ+U2L+HF7OJXL+WMsGHA==","publicKeyHash":"eUhXLM2/Z05nnAcntk0tjzFBzHgqJarnBDnovx5WMkc=","transactionId":"9845723470cc9722355763fd5b5689847842f09591855764d29322de4a319bf9"}}",
    "socialUri":"socialUri",
    "holdTimeout":1000000
}
    Пряма інтеграція Apple Pay у мобільний додаток
Для інтеграції методу в додаток використовуйте SDK PassKit від Apple для отримання PaymentToken і метод оплати Charge в API WayForPay для проведення платежу.
Процес оплати:
            
