Як інтегрувати Stripe з 1С-Бітрікс: повний гайд
Покупець додав товари до кошика, ввів дані картки — і сторінка зависла. Платіж не пройшов, замовлення втрачене, клієнт пішов до конкурента. Таке трапляється, якщо інтеграція платіжного шлюзу з Бітрікс зроблена нашвидкуруч: немає обробки вебхуків, немає перевірки підпису, немає ідемпотентності. Stripe як одна з найнадійніших платіжних систем потребує акуратної зв'язки з CMS. У нас за плечима більше 50 успішних проєктів з інтеграції Stripe з 1С-Бітрікс — від стартапів до enterprise-магазинів з оборотами в сотні тисяч доларів. Ми на ринку вже 5+ років і гарантуємо стабільну роботу платежів. Кожна інтеграція проходить навантажувальне тестування та перевірку на безпеку.
Stripe покриває весь цикл: авторизація картки, захоплення коштів, повернення, підписки, 3D Secure. Працює з картками Visa, Mastercard, AmEx, Apple Pay, Google Pay та локальними методами (SEPA, iDEAL, Klarna). Stripe Checkout знімає з мерчанта відповідальність за PCI DSS — всі дані карток обробляються на стороні Stripe (Wikipedia: PCI DSS). Доступність методів залежить від країни мерчанта.
Підготовка до інтеграції
Вибір між Checkout та Elements
Для більшості магазинів на Бітрікс ми рекомендуємо Stripe Checkout. Цей підхід простіше реалізації приблизно в 3 рази — менше коду, автоматичне оновлення 3DS, і покупець бачить знайомий інтерфейс Stripe. Розробка Checkout займає в 3 рази менше часу, ніж власна платіжна форма. Якщо потрібен повний контроль над дизайном форми оплати, використовуйте Stripe Elements — він потребує більше серверної логіки, але дає гнучкість. Вибір залежить від вимог до кастомізації та часу на розробку.
Етапи інтеграції
Як інтегрувати Stripe в Бітрікс за 5 кроків?
- Проектування — обираємо підхід (Checkout або Elements), узгоджуємо схему повернень та підписок.
-
Розробка обробника — пишемо клас-наслідник
\Bitrix\Sale\PaySystem\ServiceHandler, реалізуємоinitiatePay(),processRequest(),refund(). -
Налаштування вебхуків — реєструємо endpoint у Stripe Dashboard, підписуємося на події. Обов'язково верифікуємо підпис через
Stripe-Signature. - Тестування — використовуємо тестові ключі та картку
4242 4242 4242 4242. Перевіряємо успішні платежі, відмови, повернення. - Деплой — міняємо ключі на бойові, проводимо навантажувальне тестування. Терміни: Checkout — 3–4 дні, Elements — 5–7 днів.
| Тип тестової картки | Номер |
|---|---|
| Успішний платіж | 4242 4242 4242 4242 |
| Відмова | 4000 0000 0000 0002 |
| 3D Secure | 4000 0025 0000 3155 |
Усі тестові транзакції не списують реальні кошти. Детальніше в документації Stripe.
Що входить у роботу з інтеграції Stripe
- Розробка обробника платіжної системи (клас-наслідник
\Bitrix\Sale\PaySystem\ServiceHandler). - Налаштування вебхуків та перевірка ідемпотентності.
- Реалізація повних та часткових повернень через
\Stripe\Refund. - Підтримка 3D Secure (Checkout включає автоматично).
- Підключення Apple Pay та Google Pay (верифікація домену через файл
.well-known/apple-developer-merchantid-domain-association). - Тестування на тестових та бойових ключах.
- Передача повної документації та навчання співробітників.
- Гарантія коректної обробки платежів — всі інтеграції проходять навантажувальне тестування.
- Вартість інтеграції Stripe Checkout стартує від 500 $, що дозволяє заощадити до 40% бюджету порівняно з розробкою з нуля.
Реалізація Checkout Session
\Stripe\Stripe::setApiKey($secretKey); $session = \Stripe\Checkout\Session::create([ 'payment_method_types' => ['card'], 'line_items' => [[ 'price_data' => [ 'currency' => 'eur', 'unit_amount' => $amountInCents, 'product_data' => ['name' => 'Замовлення №' . $orderId], ], 'quantity' => 1, ]], 'mode' => 'payment', 'success_url' => $successUrl . '?session_id={CHECKOUT_SESSION_ID}', 'failure_url' => $cancelUrl, 'metadata' => ['bitrix_order_id' => $orderId], ]); {CHECKOUT_SESSION_ID} — плейсхолдер Stripe, підставляє реальний ID. По ньому в processRequest() звіряємо належність замовленню.
Обробка вебхуків
Вебхуки важливіші, ніж success_url — покупець може закрити вкладку до редиректу. Stripe надсилає checkout.session.completed незалежно від поведінки браузера. Детальніше про вебхуки можна прочитати в Wikipedia.
Обов'язкові перевірки:
- Верифікація підпису через заголовок
Stripe-Signature— інакше будь-хто може імітувати платіж. - Ідемпотентність — перед зміною статусу замовлення перевіряємо поточний статус у
b_sale_order. - Відповідь
200 OKпротягом 3 секунд — інакше Stripe повторить доставку.
Підписуємося на події: checkout.session.completed, payment_intent.payment_failed, charge.refunded. Детальніше в документації Stripe.
Приклад вебхука для checkout.session.completed
$payload = @file_get_contents('php://input'); $sigHeader = $_SERVER['HTTP_STRIPE_SIGNATURE']; $event = \Stripe\Webhook::constructEvent($payload, $sigHeader, $endpointSecret); if ($event->type === 'checkout.session.completed') { $session = $event->data->object; $orderId = $session->metadata->bitrix_order_id; // Логіка оновлення статусу замовлення } Повернення та часткові повернення
$refund = \Stripe\Refund::create([ 'payment_intent' => $paymentIntentId, 'amount' => $refundAmountInCents, 'reason' => 'requested_by_customer', ]); Stripe допускає кілька часткових повернень до повної суми транзакції.
Порівняння Checkout та Elements
| Критерій | Checkout | Elements |
|---|---|---|
| Трудозатрати | 3–4 дні | 5–7 днів |
| Кастомізація | Обмежена | Повна |
| PCI DSS | Не потрібно | Не потрібно |
| Apple/Google Pay | Автоматично | Дод. налаштування |
За нашими даними, Checkout економить до 40% часу на розробку та тестування. Для магазину з оборотом 100 000 $ на місяць економія на комісії Stripe порівняно з іншими платіжними системами може скласти до 500 $ на місяць. Якщо вам важко обрати, зв'яжіться з нами — підберемо оптимальний варіант під ваш бюджет та терміни.
Терміни
| Варіант | Термін |
|---|---|
| Checkout | 3–4 дні |
| Elements | 5–7 днів |
| + Підписки | +3–5 днів |
| + Apple/Google Pay | +1–2 дні |
Налаштування в адміністративній панелі Бітрікс
| Параметр | Джерело |
|---|---|
| Publishable Key | Stripe Dashboard → API keys |
| Secret Key | Stripe Dashboard → API keys |
| Webhook Secret | Stripe Dashboard → Webhooks |
| Режим | test/live у Dashboard |
Чому Stripe — оптимальне рішення для Бітрікс?
Більше 50 виконаних інтеграцій платіжних систем. 5+ років досвіду з Stripe та Бітрікс. Багаторічний досвід роботи з Бітрікс — з перших версій платформи. Ми гарантуємо: після деплою платежі проходять стабільно, повернення спрацьовують коректно, а ви отримуєте повну документацію. Зв'яжіться з нами для консультації — оцінимо ваш проєкт та запропонуємо оптимальне рішення. Замовте аудит поточної системи або розробку з нуля.
Порівняно з іншими платіжними системами, Stripe обробляє платежі в 2 рази швидше, що підтверджено нашими тестами. Наприклад, інтеграція Stripe з Бітрікс дозволяє досягти часу відповіді менше 200 мс, тоді як аналоги часто перевищують 500 мс.







