Top.Mail.Ru

Практика: Как подключить оплату на сайт без головной боли

Практика: Как подключить оплату на сайт без головной боли

Практика: Как подключить оплату на сайт без головной боли

Подключение онлайн-оплаты может показаться сложной задачей: документация платежных систем перегружена, а требования к безопасности пугают. В этой статье расскажу, как я интегрировал оплату на реальные проекты без лишней головной боли, используя современные инструменты.

Перед подключением стоит определиться с сервисом. Вот популярные варианты:

  • ЮKassa (ex Яндекс.Касса) — удобна для РФ, поддерживает карты, СБП, кошельки.

  • CloudPayments — простой API, поддержка Apple Pay / Google Pay.

  • Stripe — идеален для зарубежных проектов.

  • Tinkoff, Сбер, PayKeeper — для проектов с юридическим лицом.

 

  • ✅ Зарегистрироваться в системе и подтвердить личность / ИП / ООО.

  • ✅ Получить API-ключи.

  • ✅ Настроить редиректы (успешная и неуспешная оплата).

  • ✅ Определиться с моделью оплаты: однократный платёж, подписка, счёт.


Интеграция на сайте (пример: Laravel + CloudPayments)

1. Создаём форму на фронтенде:

<form id="paymentForm">
  <input type="text" name="amount" placeholder="Сумма" />
  <input type="text" name="email" placeholder="Email" />
  <button type="submit">Оплатить</button>
</form>

2. Отправляем данные на сервер:

fetch('/api/payment/initiate', {
  method: 'POST',
  body: new FormData(document.getElementById('paymentForm'))
});

3. Обработка на сервере (Laravel):

public function initiatePayment(Request $request)
{
    $amount = $request->input('amount');
    $email = $request->input('email');

    $payment = new \App\Services\CloudPayments();
    $result = $payment->createPayment($amount, $email);

    return response()->json(['url' => $result->payment_url]);
}

4. Подтверждение оплаты (webhook):

public function handleWebhook(Request $request)
{
    $data = $request->all();
    if ($data['Status'] === 'Completed') {
        // пометить заказ как оплаченный
    }
    return response('OK', 200);
}

Безопасность и валидация

  • Используйте HTTPS.

  • Проверяйте подписи запросов от платёжной системы.

  • Не храните данные карт — используйте PCI DSS-сертифицированные шлюзы.

  • Ограничьте доступ к webhook по IP.


Тестирование

Все платёжные системы предоставляют тестовые карты и sandbox-среду. Перед запуском:

  • Протестируйте успешную и неуспешную оплату.

  • Проверьте обработку отмен и возвратов.

  • Убедитесь, что оплата обновляет статус заказа.

 

Если не хочется всё делать вручную:

  • Laravel Cashier (Stripe / Paddle) — удобен для подписок.

  • WooCommerce + Яндекс.Касса / Stripe — для WordPress.

  • Битрикс24 + платёжный модуль — просто активируйте в настройках.

 

Автор:

26

Читайте также

0 комментариев

Оставьте комментарий

Комментарии

Бот: Здравствуйте! Я чат-бот веб-разработчика. Чем могу помочь в создании или доработке вашего сайта?