EnglishEN EspañolES FrançaisFR DeutschDE ItalianoIT PortuguêsPT 中文ZH 日本語JA 한국어KO РусскийRU NederlandsNL
← Back to all articles

Как добавить Stripe Checkout на кастомный PHP-сайт (без плагинов)

Stripe — самый чистый из доступных платёжных API, и подключение его напрямую к PHP означает отсутствие ежемесячных платежей за SaaS, отсутствие нагромождения WooCommerce и отсутствие комиссии Shopify за транзакции. Далее — та самая реализация, которая работает в реальных магазинах клиентов BuiltToWinWeb: чистый PHP, официальный Stripe SDK, безопасные вебхуки и автоматические подтверждения по электронной почте. Вы увидите, как складываются части — сессия оплаты, редирект, проверка вебхука, исполнение заказа — чтобы принимать реальные платежи, не отдавая долю никакой платформе. Здесь всё — продакшн-код, а не одноразовая демонстрация.

Почему нативный PHP + Stripe превосходит любой конструктор страниц

Shopify берёт от 0,5 до 2% с транзакции сверх комиссии Stripe. WooCommerce добавляет 14+ зависимостей плагинов, замедляющих LCP страницы оформления заказа до 3,8 с.

  • Ноль платформенных транзакционных сборов – только 2,9% + 30¢ от Stripe
  • Lighthouse-оценка страницы оформления: 98 против типичных 61 у Shopify
  • Полный контроль над вебхуками – кастомное выполнение, инвентарь, email
  • Никакой ежемесячной платы за подписку на e-commerce-платформу
  • Владеете кодом, хоститесь где угодно, мигрируете свободно

Шаг 1 — Установка Stripe PHP SDK

Composer — наиболее чистый подход.

composer require stripe/stripe-php

Затем загрузите его в начале вашего checkout-скрипта:

require_once __DIR__ . '/vendor/autoload.php';
\Stripe\Stripe::setApiKey(getenv('STRIPE_SECRET_KEY'));

Шаг 2 — Создание сессии Checkout (на стороне сервера)

Никогда не размещайте секретный ключ в браузере. Создайте серверный endpoint, на который делает POST фронтенд:

<?php
$session = \Stripe\Checkout\Session::create(['payment_method_types'=>['card'],'line_items'=>[['price_data'=>['currency'=>'usd','unit_amount'=>300000,'product_data'=>['name'=>'Business Pro Website']],'quantity'=>1]],'mode'=>'payment','success_url'=>'https://yoursite.com/success','cancel_url'=>'https://yoursite.com/pricing']);
echo json_encode(['url'=>$session->url]);

Шаг 3 — Перенаправление пользователя с фронтенда

Простой fetch-вызов на кнопке страницы с ценами:

document.getElementById('buy-btn').addEventListener('click', async () => {
    const res = await fetch('/create-checkout-session.php', {method:'POST'});
    const data = await res.json();
    window.location.href = data.url;
});

Шаг 4 — Обработка вебхуков (исполнение заказа)

Stripe отправляет POST на ваш вебхук-endpoint при успешной оплате.

<?php
$event = \Stripe\Webhook::constructEvent(file_get_contents('php://input'), $_SERVER['HTTP_STRIPE_SIGNATURE'], getenv('STRIPE_WEBHOOK_SECRET'));
if ($event->type === 'checkout.session.completed') { fulfill_order($event->data->object); }
http_response_code(200);

Зарегистрируйте URL вебхука в дашборде Stripe: Разработчики → Вебхуки.

Шаг 5 — Отправка подтверждающего письма через PHPMailer

Внутри вашей функции `fulfill_order()` получите email клиента из сессии:

function fulfill_order($session) {
    $email = $session->customer_details->email;
    $mail = new PHPMailer\PHPMailer\PHPMailer(true);
    $mail->setFrom('[email protected]', 'Ваша Компания');
    $mail->addAddress($email);
    $mail->Subject = 'Оплата получена — Спасибо!';
    $mail->Body = 'Ваш заказ подтверждён.';
    $mail->send();
}

Сравнение платформ: индивидуальный PHP против Shopify и WooCommerce

Показатель Кастомный PHP + Stripe Shopify WooCommerce
Checkout LCP 0,6 с 1,9 с 2,8 с
Lighthouse-оценка 98 61 55
Платформенный сбор/транзакция 0% 0,5–2% 0%*
Ежемесячная стоимость платформы $0 $39–$399 $0*
Зависимости плагинов 0 н/д 14+
Владение кодом 100% 0% ~60%

Реальное влияние на бизнес

Для магазина с оборотом $50 000/мес. 2,9% + 30¢ Stripe неизбежны. Но дополнительный сбор платформы Shopify в 0,5–2% стоит от $250 до $1 000 дополнительно в месяц.

  • Shopify Advanced ($399/мес.) + 0,5% от $50k = $649/мес. платформенных расходов
  • Кастомный PHP + Stripe = $0/мес. платформенных расходов
  • Точка безубыточности для магазина за $8 000: менее 9 месяцев
  • Страницы оформления загружаются в 3 раза быстрее = заметное снижение брошенных корзин

Расчёт прост: если вы обрабатываете более $15 000/мес., кастомный PHP-магазин окупается менее чем за год.

Контрольный список безопасности

  • Храните ключи в переменных окружения – никогда не прописывайте в PHP-файлах
  • Всегда проверяйте подписи вебхуков Stripe через `constructEvent()`
  • Используйте HTTPS везде – Stripe требует это
  • Идемпотентность: проверяйте, не существует ли заказ уже, до его обработки
  • Ограничьте частоту запросов к `/create-checkout-session.php` (10 запросов/час на IP)

Часто задаваемые вопросы

Нужен ли Composer для использования Stripe с PHP?

Composer рекомендуется, но не обязателен. Можно загрузить SDK как ZIP и подключить вручную через require_once.

Безопасно ли обрабатывать платежи без платформы вроде Shopify?

Да. Stripe сертифицирован по PCI-DSS уровня 1. Ваш сервер никогда не обрабатывает сырые номера карт.

Как тестировать Stripe без списания с реальных карт?

Используйте тестовый режим Stripe с префиксом sk_test_. Тестовая карта: 4242 4242 4242 4242 с любым будущим сроком.

Можно ли добавить подписки с этим подходом?

Да. Измените режим сессии Checkout с "payment" на "subscription" и передайте повторяющийся ID цены.

Хотите кастомный Stripe-магазин, построенный для вас?

BuiltToWinWeb создаёт кастомные PHP e-commerce-магазины с нативной интеграцией Stripe, оценками Lighthouse 98+ и нулевыми ежемесячными платформенными сборами.

Магазины обычно сдаются за 3–4 недели. Ответ гарантирован в течение 24 часов.

Получить бесплатный расчёт

Бенчмарк-данные из контролируемых тестов на идентичном хостинге Hostinger VPS.