Интеграция 1С-Битрикс с платёжной системой Apple Pay
Мы часто получаем запросы на внедрение Apple Pay в интернет-магазины на 1С-Битрикс. Apple Pay — не отдельная платёжная система, а надстройка над существующим эквайрингом. Без банка-эквайера или агрегатора, поддерживающего Apple Pay, ни один платёж не пройдёт. Многие разработчики недооценивают серверную часть: Apple требует верификации домена через Merchant Identity Certificate, и без неё кнопка не появится, как бы красиво ни был написан JS-код. Более того, сама сессия платежа требует трёхстороннего рукопожатия между браузером пользователя, сервером магазина и серверами Apple. Разберём этот процесс детально.
Apple Developer documentation: "Before you can process payments, you must verify that you control the merchant's domain by uploading a domain association file."
Как домен верифицируется в Apple Pay?
- Фронтенд проверяет доступность:
ApplePaySession.canMakePayments()— работает только в Safari на Apple-устройствах. - При инициации платежа браузер запрашивает Payment Session у сервера магазина.
- Сервер магазина проксирует запрос к Apple через Merchant Identity Certificate.
- Apple верифицирует домен → возвращает сессионный объект.
- Пользователь подтверждает Face ID/Touch ID → браузер получает зашифрованный токен.
- Токен передаётся в банк-эквайер для проведения транзакции.
Шаги 3–4 критичны — без серверного кода ни одна кнопка не сработает.
Почему прямая интеграция требует больше времени?
При прямой интеграции вы самостоятельно управляете сертификатами и сессиями Apple. Это даёт полный контроль, но увеличивает время разработки в 2-3 раза относительно виджета агрегатора. Виджет (CloudPayments, ЮKassa) берёт на себя всю серверную часть — достаточно зарегистрировать домен в личном кабинете и добавить несколько строк JavaScript.
| Способ | Сроки | Сложность | Надёжность |
|---|---|---|---|
| Виджет агрегатора | 1–2 дня | Низкая | Высокая (агрегатор отвечает за сертификаты) |
| Прямая интеграция | 3–5 дней | Высокая | Средняя (зависит от реализации) |
Как подготовить Merchant ID и сертификаты?
- Аккаунт Apple Developer Program ($99/год) — для создания Merchant ID и скачивания сертификатов.
- Верификация домена: файл
.well-known/apple-developer-merchantid-domain-associationв корне сайта. - Банк-эквайер или агрегатор с поддержкой Apple Pay.
- HTTPS — Apple Pay недоступен без SSL.
- Настроенный 1С-Битрикс с компонентом оплаты
sale.order.checkout.
Интеграция через агрегатор (рекомендуемый путь)
Если уже используется CloudPayments или ЮKassa — Apple Pay включается через их виджет, вся серверная часть с сертификатами берётся агрегатором на себя:
// CloudPayments Widget
const cp = new cp.CloudPayments({ publicId: 'pk_XXXXXX' });
// Проверяем доступность
if (window.ApplePaySession && ApplePaySession.canMakePaymentsWithActiveCard('merchant.ru.shop')) {
document.getElementById('apple-pay-btn').style.display = 'block';
}
document.getElementById('apple-pay-btn').addEventListener('click', () => {
cp.pay('applepay', {
description: 'Заказ #' + orderId,
amount: orderAmount,
currency: 'RUB',
invoiceId: String(orderId),
accountId: customerEmail,
}, {
onSuccess: () => confirmOrderPaid(orderId),
onFail: (reason) => showError(reason),
});
});
Предварительно в личном кабинете агрегатора нужно зарегистрировать домен — он автоматически добавит файл верификации. Это самый быстрый путь: по статистике, конверсия в оплату увеличивается на 10-15%.
Серверная валидация домена (прямая интеграция)
Если нужна реализация без виджета агрегатора:
// local/api/apple-pay-validate.php
$validationUrl = filter_var($_POST['validationUrl'] ?? '', FILTER_VALIDATE_URL);
// Разрешаем только домены Apple
if (!preg_match('#^https://apple-pay-gateway(-cert)?\.apple\.com#', $validationUrl)) {
http_response_code(400); exit;
}
$ch = curl_init($validationUrl);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode([
'merchantIdentifier' => 'merchant.ru.yourshop',
'domainName' => 'yourshop.ru',
'displayName' => 'Your Shop',
]),
CURLOPT_SSLCERT => APPLE_PAY_CERT_PATH,
CURLOPT_SSLKEY => APPLE_PAY_KEY_PATH,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
]);
$response = curl_exec($ch);
curl_close($ch);
header('Content-Type: application/json');
echo $response;
JS-код на странице оплаты
const session = new ApplePaySession(3, {
countryCode: 'RU',
currencyCode: 'RUB',
supportedNetworks: ['visa', 'masterCard', 'mir'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Ваш магазин', amount: String(orderAmount) },
});
session.onvalidatemerchant = async ({ validationURL }) => {
const resp = await fetch('/api/apple-pay-validate.php', {
method: 'POST',
body: new URLSearchParams({ validationUrl: validationURL }),
});
session.completeMerchantValidation(await resp.json());
};
session.onpaymentauthorized = async ({ payment }) => {
const result = await sendTokenToServer(payment.token);
session.completePayment(
result.success ? ApplePaySession.STATUS_SUCCESS : ApplePaySession.STATUS_FAILURE
);
};
session.begin();
Добавление в Битрикс
Кнопку добавляем в шаблон sale.order.checkout. Показываем только при canMakePayments() === true. После получения токена — AJAX к PHP-обработчику, который передаёт токен в банк и вызывает $payment->setPaid('Y'). Важно настроить правильные события: после успешной оплаты перенаправлять на страницу заказа.
Что входит в работу по интеграции Apple Pay
- Регистрация Merchant ID и генерация сертификатов в Apple Developer.
- Размещение файла верификации домена.
- Настройка HTTPS и SSL-сертификата (если требуется).
- Интеграция с выбранным агрегатором или прямая серверная валидация.
- Реализация кнопки Apple Pay в шаблоне оплаты 1С-Битрикс.
- Тестирование на реальных устройствах (iPhone, iPad, Mac).
- Документирование процесса для поддержки.
Типичные ошибки при интеграции
- Неправильный Merchant ID или отозванный сертификат → кнопка не появляется.
- Файл верификации не загружен в корень домена → домен не верифицируется.
- Отсутствует поддержка 3DS → транзакции отклоняются.
- Код проверки
canMakePaymentsвызывает сбой на старых iOS.
Сроки
| Задача | Срок |
|---|---|
| Регистрация Merchant ID, верификация домена | 0.5 дня |
| Интеграция через виджет агрегатора | 1–2 дня |
| Прямая интеграция с Apple Pay JS API | 3–5 дней |
Свяжитесь с нами, чтобы мы оценили ваш проект и подобрали оптимальный способ интеграции. Закажите внедрение Apple Pay — повысьте конверсию оплат на 10–15% без лишних затрат времени. По статистике, пользователи Apple Pay тратят на 20% больше, чем при обычной оплате картой.
Также рекомендуем ознакомиться с документацией Apple Pay (оригинал) и Wikipedia.







