Платёжный терминал и защищённый маршрут ведут к подтверждённому заказу
Разработка сайтов

Оплата в интернет-магазине: как связать экран покупателя с фактом платежа

Покупатель может вернуться с платёжной страницы до окончательного подтверждения. Разделите сообщения на экране, статусы провайдера и состояние заказа.

Покажите условия до перехода к оплате

Перед платёжным шагом человек должен видеть состав заказа, итоговую сумму, доставку и выбранный способ оплаты. Изменение количества или адреса должно пересчитывать итог и сохраняться в заказе. Если сумма на стороне провайдера отличается от суммы в корзине, покупатель не может понять, что именно подтверждает.

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

Отделите возврат в браузер от успешного платежа

ЮKassa поясняет, что адрес возврата может открыться как после успеха, так и после ошибки. Показывать «оплачено» только по факту перехода на return URL нельзя. Магазину нужно проверить финальное состояние платежа через предусмотренный провайдером механизм и затем обновить заказ.

Статус ожидания подтверждения отличается от окончательного списания. Пока оно не подтверждено, экран должен честно сообщать, что платёж проверяется, и не создавать второй заказ из-за повторного нажатия. Для неуспеха предложите безопасное повторение или другой способ оплаты с тем же составом корзины.

Обработайте уведомления без дублей

Webhook может прийти позже браузерного возврата или повториться. Проверяйте подлинность уведомления по инструкции провайдера, связывайте его с конкретным заказом и делайте обработку повторного события безопасной. Успешный ответ вашему серверу сообщает провайдеру о приёме уведомления, но не заменяет учёт платежа.

Запишите, какие данные о платеже хранятся у магазина и какие остаются у провайдера. PCI SSC объясняет, что redirect и iframe влияют на критерии соответствия, но передача оплаты подрядчику сама по себе не даёт автоматического заключения о безопасности.

Прогоните реальные состояния

В тестовом режиме проверьте успешный платёж, отказ, долгую обработку, возврат из браузера без успеха и повторный webhook. Сверьте сумму, идентификатор платежа, статус заказа, уведомление покупателю и действия менеджера. Отдельно проверьте путь отмены и возврата средств по правилам выбранного сервиса.

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

Вопросы и ответы

Можно ли считать оплату успешной после возврата на сайт?

Нет: проверьте финальное состояние платежа у провайдера и свяжите его с заказом.

Зачем учитывать повторные webhook?

Повторная доставка уведомления возможна; обработчик не должен создавать новый заказ или дублировать действия.

Получите понятный план следующего шага

Опишите, что не работает или что нужно запустить. Уточним задачу и предложим практичный состав и порядок работ.

Написать на почтуhello@iskro.techTelegram
Получить разбор проекта