Интеграция 1С-Битрикс с платежной системой Apple Pay

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с платежной системой Apple Pay
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1044

Интеграция 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?

  1. Фронтенд проверяет доступность: ApplePaySession.canMakePayments() — работает только в Safari на Apple-устройствах.
  2. При инициации платежа браузер запрашивает Payment Session у сервера магазина.
  3. Сервер магазина проксирует запрос к Apple через Merchant Identity Certificate.
  4. Apple верифицирует домен → возвращает сессионный объект.
  5. Пользователь подтверждает Face ID/Touch ID → браузер получает зашифрованный токен.
  6. Токен передаётся в банк-эквайер для проведения транзакции.

Шаги 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.