Apple Pay¶
Настоящий документ представляет собой руководство по использованию платёжного метода Apple Pay. Руководство определяет порядок действий для:
- размещения кнопки Apple Pay на странице оплаты веб-сайта;
- осуществления информационного взаимодействия c целью совершения платежа.
Принцип работы способа оплаты Apple Pay указан на сайте developer.apple.com.
Инструкция предназначена для компаний, осуществляющих приём платежей с помощью собственной платёжной формы и взаимодействия с платформой “Процессинговый сервис” по API.
Если приём платежей осуществляется с помощью платёжного виджета “Процессинговый сервис”, описанные ниже действия выполнять не требуется — способ оплаты Apple Pay уже доступен для покупателей.
Размещение кнопки и обработчика событий Apple Pay¶
Необходимо выполнить действия, описанные в данной документации: проверить доступность оплаты с помощью данного метода, настроить свой сервер для взаимодействия с Apple, встроить кнопку оплаты с помощью JavaScript, создать платёжную сессию.
Проверка доступности метода оплаты
См. данную инструкцию.
Идентификатор мерчанта и сертификат
Для того чтобы получить merchantIdentifier, можно обратиться в службу поддержки “Процессинговый сервис”. При обращении следует сообщить домен веб-сайта, на котором будет размещена кнопка, с целью его успешной верификации в Apple Pay.
Альтернативным вариантом получения merchantIdentifier является самостоятельная регистрация merchant ID в Apple Pay. Созданный в ходе регистрации Payment Processing Certificate необходимо передать в службу поддержки “Процессинговый сервис”.
Информация
Обратите внимание, что ApplePaySession запустится только на домене с валидным SSL-сертификатом.
Отображение кнопки Apple Pay
Необходимо разместить CSS согласно гайдлайнам Apple, отобразить кнопку оплаты и указать для неё обработчик, который запустит платёжную сессию.
Создание платёжной сессии
См. данную инструкцию.
Информация
Сумма платежа должна совпадать с суммой созданного раннее инвойса.
Валидация мерчанта
См. данную инструкцию.
Информация
В качестве validationURL необходимо использовать endpoint “Процессинговый сервис”: https://wrapper.ducat.pro/applepay/api/v1/session.
Полный набор действий при работе с сессией оплаты отражен в данной статье.
Пример итогового JS-кода
var domainName = 'developer.ducat.pro';
var merchantIdentifier = 'merchant.money.ps.checkout';
var paymentAmount = 10;
var merchantValidationEndpoint = 'https://wrapper.ducat.pro/applepay/api/v1/session';
var displayName = 'ProcessingSystem Apple Pay Test';
if (window.ApplePaySession) {
var promise = ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);
promise.then(function(canMakePayments) {
if (canMakePayments)
processApplePayRoutine();
else
document.getElementById("apple-pay-button").style.display = 'none';
});
} else {
document.getElementById("apple-pay-button").style.display = 'none';
}
function processApplePayRoutine() {
document.getElementById("apple-pay-button").onclick = function(event) {
var paymentRequest = {
currencyCode: 'RUB',
countryCode: 'RU',
total: {
label: displayName,
amount: paymentAmount
},
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': merchantIdentifier,
'validationURL': validationURL,
'body': {
'merchantIdentifier': merchantIdentifier,
'domainName': domainName,
'displayName': displayName
}
};
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));
});
}
session.onpaymentauthorized = function(event) {
console.log(JSON.stringify(event.payment.token));
session.completePayment(ApplePaySession.STATUS_SUCCESS);
}
session.begin();
}
};
Оплата с помощью Apple Pay¶
Для совершения оплаты с помощью метода Apple Pay необходимо придерживаться стандартного процесса проведения платежа. При этом:
- при выборе данного метода покупатель должен нажать соответствующую кнопку на странице оплаты заказа: шаг 5 схемы проведения платежа;
- при формировании запроса на создание токена платежного средства (шаг 7 схемы проведения платежа) следует передать определенные значения указанных ниже параметров.
| Параметр | Значение |
|---|---|
provider |
ApplePay |
paymentToolType |
TokenizedCardData |
gatewayMerchantID |
Идентификатор мерчанта (продавца), выданный группой сопровождения “Процессинговый сервис” или Apple Pay |
paymentToken |
Полученные структура и значения ApplePayPaymentToken |
Информация
При проведении платежа помимо настоящей банковской карты может быть использована тестовая карта MasterCard со следующими данными: PAN 5204 2477 5000 1471, Expiration Date 11/2022, CVC 111. Инструкция по созданию тестового аккаунта Apple и привязке тестовой карты находится по данному адресу https://developer.apple.com/apple-pay/sandbox-testing.