Я занимаюсь разработкой веб-сайта электронной торговли, и у меня есть одно сомнение в моем сознании. Предположим, что пользователь добавил продукт в своей корзине и нажал на кассе, и он переведен на платежный шлюз, который возникает некоторые условияВеб-сайт электронной торговли с использованием ситуации с проверкой php
- В то же время другой пользователь 2 проверяя тот же продукт, в то время как пользователь 1 находится в процессе оформления заказа , так что я должен отображать количество продукта один раз или должен отображать такое же количество, пока пользователь 1 не сделает платеж.
Что делать, если пользователь 1 нажал на checkout и не вернулся из шлюза, как он закрыл браузер или вкладку, и я вычитал количество, когда он нажал кнопку выписки, чтобы пользователь 2 мог видеть доступное количество актуалов.
если я не вычитать количество, когда кнопка фотографии нажата и пользователь 2 также проверили только после того, как пользователь 1 и продукт, имеющий ограниченное количество, которое было куплено пользователем 1.
Как справиться с этой ситуацией? Я использую php и mysql.
В этой ситуации, когда пользователь 2 вернулся на мой сайт, и мой скрипт для вычитания количества начинает работать, и он обнаружил, что количество уже равно 0, поэтому он должен отображать сообщение об ошибке, например, ваша транзакция успешна, но продукт больше недоступен, ваши деньги будут переведены на ваш банковский счет в некоторые рабочие дни? Но я хочу, чтобы транзакция никогда не происходила всякий раз, когда продукт выходит из употребления. –
Хорошо, получил это сейчас ... В этом случае вы должны сохранить заказ и вычесть его до этапа оплаты. Этап оплаты приходит после того, как заказ уже находится в вашей базе данных. Поэтому вы должны зарезервировать продукты для этого заказа до оплаты и сохранить заказ со статусом «Ожидание платежа». Когда заказ остается на нем более чем на X дней, вы должны отменить заказ и вернуть зарезервированные количества в доступные количества. Эта электронная коммерция, с которой я работаю сейчас, использует этот подход. Надеюсь, это решит вашу проблему, поэтому я могу отредактировать ответ выше. –