Оплата — это несколько состояний

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

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

Связь с учётом

Определяем, что оплачивается: заказ, услуга, пополнение или подписка. Затем связываем платёж с соответствующей записью. Идентификатор операции сохраняется, чтобы повторное уведомление не начисляло результат второй раз.

Для отмен и возвратов нужны отдельные правила. Не подменяем неопределённый результат автоматическим успехом или повторной продажей. При сложной ситуации система сохраняет данные для проверки и показывает сотруднику, что именно известно.

  • Создание платёжной операции и переход к провайдеру.
  • Проверка уведомлений и повторных запросов.
  • Отображение статуса в продукте.
  • Обработка возвратов по согласованному сценарию.

Что зависит от провайдера

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

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

Что нужно для начала

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