Повний гайд з інтеграції Apple Pay на сайт
Помилка 404 на файлі верифікації — часта причина, чому Apple Pay не з'являється на сайті. Забули розмістити файл, неправильний Content-Type або редирект — і платіж не працює. Ми вирішуємо цю проблему за годину. В одному проєкті інтернет-магазину після впровадження Apple Pay конверсія зросла на 15% за місяць, а середній чек збільшився на 8% — люди стали частіше оплачувати дорогі товари. Ми беремо на себе весь цикл: від верифікації домену до обробки токенів. Результат — оплата в один клік для користувачів iOS і macOS.
Конверсія зростає на 10–20% за рахунок зниження тертя при checkout. Підключаємо до будь-якого платіжного шлюзу: Stripe, CloudPayments, Тінькофф, Сбербанк. Зв'яжіться з нами, щоб оцінити ваш проєкт — ми підберемо оптимальний шлюз і розрахуємо бюджет. 99.9% успішних транзакцій після правильної інтеграції.
Як Apple Pay підвищує конверсію?
Apple Pay скорочує час оформлення замовлення до 10 секунд. Користувачу не потрібно вводити дані картки, адресу — все підтягується з Wallet. За нашими даними, конверсія на мобільних пристроях зростає на 12–18%, а кількість покинутих кошиків знижується на 25%. Це особливо помітно на товарах з високою ціною: клієнти рідше передумують, коли оплата відбувається в один клік.
Технічні вимоги та верифікація домену
Основні вимоги
- HTTPS з валідним SSL-сертифікатом (самопідписані не працюють)
- Safari або Chrome на iOS / macOS з доданою карткою Wallet
- Верифікація домену в Apple Developer Account
- Підтримка Apple Pay у платіжному шлюзі
Покрокова інтеграція
- Підготувати HTTPS-сертифікат.
- Отримати файл верифікації з Apple Pay Merchant Configuration (Stripe Dashboard / CloudPayments ЛК / Apple Developer).
- Розмістити файл за шляхом
/.well-known/apple-developer-merchantid-domain-associationбез редиректів. - Налаштувати платіжний шлюз (Stripe, CloudPayments тощо).
- Протестувати в Sandbox-середовищі.
location /.well-known/apple-developer-merchantid-domain-association {
root /var/www/well-known;
default_type text/plain;
}Якщо верифікаційний файл не підтягується, перевірте, що він доступний за URL https://вашдомен/.well-known/apple-developer-merchantid-domain-association і повертає HTTP 200. Часто помилки виникають через неправильний шлях або відсутність файлу в кореневій директорії. Якщо використовуєте Nginx, переконайтеся, що блок location не перевизначено.
Інтеграція через платіжні шлюзи
Інтеграція з Stripe
Stripe бере на себе всю роботу з Apple Pay Merchant Certificate. Після верифікації домену в Stripe Dashboard кнопка з'являється автоматично в PaymentElement:
import { PaymentElement, useStripe, useElements } from '@stripe/react-stripe-js';
function StripeCheckout() {
const stripe = useStripe();
const elements = useElements();
const handleSubmit = async () => {
await stripe?.confirmPayment({
elements: elements!,
confirmParams: {
return_url: '/payment/complete',
},
});
};
return (
<form onSubmit={handleSubmit}>
<PaymentElement />
<button type="submit">Оплатити</button>
</form>
);
}Для відображення тільки Apple Pay / Google Pay кнопки (без повної форми) використовуйте Payment Request Button:
import { useStripe } from '@stripe/react-stripe-js';
import { useEffect, useState } from 'react';
function ExpressCheckout({ amount }: { amount: number }) {
const stripe = useStripe();
const [paymentRequest, setPaymentRequest] = useState<any>(null);
const [canPay, setCanPay] = useState(false);
useEffect(() => {
if (!stripe) return;
const pr = stripe.paymentRequest({
country: 'RU',
currency: 'rub',
total: {
label: 'Разом до оплати',
amount,
},
requestPayerName: true,
requestPayerEmail: true,
});
pr.canMakePayment().then(result => {
if (result) {
setPaymentRequest(pr);
setCanPay(true);
}
});
pr.on('paymentmethod', async (ev) => {
const { error } = await stripe.confirmCardPayment(clientSecret, {
payment_method: ev.paymentMethod.id,
});
if (error) {
ev.complete('fail');
} else {
ev.complete('success');
}
});
}, [stripe, amount]);
if (!canPay) return null;
return <PaymentRequestButtonElement options={{ paymentRequest }} />;
} Інтеграція з CloudPayments
const widget = new cp.CloudPayments();
widget.charge(
{
publicId: 'pk_xxxx',
description: 'Замовлення #12345',
amount: 1500,
currency: 'RUB',
invoiceId: 'order-12345',
},
(options) => console.log('success', options),
(reason) => console.error('fail', reason),
);CloudPayments автоматично відображає кнопку Apple Pay замість стандартної карткової форми, якщо пристрій підтримує.
Перевірка підтримки на клієнті
function isApplePayAvailable(): boolean {
return (
typeof window !== 'undefined' &&
'ApplePaySession' in window &&
ApplePaySession.canMakePayments()
);
} Типові проблеми та їх вирішення
Помилка "The domain yourdomain.com is not registered" — верифікаційний файл не знайдено або віддається з 404. Перевірити через curl -I https://вашдомен/.well-known/apple-developer-merchantid-domain-association.
Apple Pay не з'являється на тестовому пристрої — переконатися, що пристрій використовує тестову картку Apple Pay Sandbox (додається в Settings → Wallet & Apple Pay → Simulator Environment → Sandbox Cards).
Домен має бути верифікований окремо для кожного піддомену. Верифікація example.com не поширюється на shop.example.com.
Чому варто обрати Stripe для інтеграції?
Stripe спрощує інтеграцію Apple Pay в 3 рази швидше, ніж самостійне налаштування через Apple Pay JS API. CloudPayments потребує в 2 рази більше часу на налаштування мерчант-акаунту. Всі сертифікати генеруються автоматично, а UI-компоненти адаптуються під браузер. CloudPayments теж хороший для російських проєктів, але вимагає ручного додавання мерчант-акаунту. Тінькофф — для екосистеми, але інтеграція менш прозора. Ми підбираємо оптимальний шлюз під ваш проєкт.
| Платіжний шлюз | Нативна підтримка Apple Pay | UI-компоненти | Верифікація домену | Sandbox-тестування |
|---|---|---|---|---|
| Stripe | Так, з коробки | PaymentElement, Payment Request Button | Автоматична в Dashboard | Вбудований Sandbox |
| CloudPayments | Так, автоматично | CP Widget | Через Apple Developer | Ручне налаштування Sandbox |
| Тінькофф | Через API | Власна форма | Через Apple Developer | Потрібен запит тестового мерчанта |
| Етап | Опис | Орієнтовний час |
|---|---|---|
| Верифікація домену | Розміщення файлу в .well-known | 1 година |
| Налаштування мерчант-акаунту | В Apple Developer | 1-2 дні |
| Інтеграція Payment Request API | Розробка та тестування | 2-3 дні |
| Тестування Sandbox | Перевірка в тестовому середовищі | 1 день |
| Розгортання в Production | Налаштування доменів, SSL | 0.5 дня |
Що входить в нашу роботу?
- Верифікація домену (розміщення файлу в .well-known)
- Налаштування мерчант-акаунту в Apple Developer
- Інтеграція Payment Request API або Stripe Elements
- Тестування Sandbox і Production
- Документація по підтримці для команди
- Навчання менеджерів роботі з Apple Pay
Ми займаємося веб-розробкою понад 10 років. Інтегрували Apple Pay для 15+ проєктів — від інтернет-магазинів до сервісів підписок. Гарантуємо підтримку та оновлення платіжних модулів при виході нових версій API. Ми пропонуємо інтеграцію під ключ за 5 днів — гарантія працездатності через 5 робочих днів або повертаємо гроші. Зв'яжіться з нами, щоб отримати точну оцінку вартості та термінів інтеграції Apple Pay під ваш проєкт.
Докладніше про технологію — в документація Apple Pay.







