Повний гайд з інтеграції 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.







