Все истории

💳 Как backend понимает, что пользователь оплатил заказ

Копия публикации из архива канала. Дата и текст сохранены.

Многие новички представляют это так:
Пользователь нажал кнопку «Оплатить»...

Backend такой:
— Ага, деньги пришли. Отлично. 😄

Но в реальности всё работает совсем не так.
Когда вы оплачиваете заказ, деньги чаще всего уходят не напрямую вашему сайту, а в платежную систему — например, ЮKassa, Stripe, CloudPayments и другие.

Backend лишь создает платеж и получает ссылку или форму для оплаты.
Дальше пользователь вводит данные карты, подтверждает платеж — и только после этого начинается самое интересное.

Платежная система сама отправляет на сервер специальное уведомление — webhook.
В нем говорится примерно следующее:
✅ Платеж успешно завершен.
✅ Сумма совпадает.
✅ Вот ID заказа.
✅ Деньги действительно получены.

И только после получения такого уведомления backend меняет статус заказа:
📦 оплачен;
📧 отправляет чек;
🚚 запускает сборку заказа;
📩 открывает доступ к курсу или подписке.

Именно поэтому хороший backend никогда не доверяет браузеру пользователя.

Если пользователь просто откроет DevTools и отправит запрос «Я оплатил», сервер не должен ему поверить.

Единственный надежный источник — это сама платежная система, которая подтверждает, что деньги действительно поступили.

Поэтому в любой современной системе оплата — это не просто кнопка «Заплатить». Это целая цепочка проверок, которая защищает и бизнес, и пользователя от ошибок, мошенничества и случайных сбоев.

👇 А вы уже работали с платежными системами или пока только слышали про webhooks?