Покажите итог до оплаты
Отобразите состав заказа, количество, скидки, стоимость и условия доставки до подтверждения платежа. Объясните, если часть суммы рассчитывается после уточнения адреса. Разрешите исправить корзину и контакты без потери введённых данных. Регистрация может быть полезной для повторных покупок, но не должна без причины блокировать первый заказ.
Отделите заказ от статуса платежа
Возврат покупателя со страницы банка не является достаточным подтверждением оплаты. Проверяйте серверное уведомление провайдера, подпись, сумму и идентификатор заказа. Повторные уведомления должны обрабатываться безопасно без дублирования заказа или списания резерва. Не храните реквизиты карт в собственной базе, если архитектура использует платёжную страницу провайдера.
Продумайте неудобные сценарии
Покупатель может закрыть вкладку, получить отказ банка или вернуться позже. Нужны понятные статусы «ожидает оплаты», «оплачен», «отменён» и способ продолжить действие. Проверяйте тестовые сценарии через официальную тестовую среду платёжной системы, включая возврат и отмену, до включения реальных платежей.
- Итог и доставка видны заранее.
- Платёж подтверждается на сервере.
- Повторные уведомления не дублируют операции.
- Ошибка объясняет безопасный следующий шаг.
Вопросы о проекте
Нужно ли создавать заказ только после оплаты?
Не всегда. Часто заказ создают в состоянии ожидания, а платёж меняет его статус. Конкретная схема зависит от резервирования и процесса обработки.