Практика: Как подключить оплату на сайт без головной боли
Подключение онлайн-оплаты может показаться сложной задачей: документация платежных систем перегружена, а требования к безопасности пугают. В этой статье расскажу, как я интегрировал оплату на реальные проекты без лишней головной боли, используя современные инструменты.
Перед подключением стоит определиться с сервисом. Вот популярные варианты:
-
Ю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 + платёжный модуль — просто активируйте в настройках.
Автор: Евгений Морковин
0 комментариев
Оставьте комментарий
Комментарии