запретить использование одного и того же кода купона дважды при оплате PayPal

Сценарий довольно прост.

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

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

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

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

Как запретить пользователю повторно использовать одноразовый купон? Должно ли это произойти до того, как его доставят на место в Пьяпале или после того, как его туда доставят? а как превыше всего?

0

Решение

Я предполагаю, что у ваших кодов купонов есть два состояния: «используется» и «не используется» … и третье состояние «в ожидании». Когда пользователь вводит код купона, подтвердите его, затем отметьте как ожидающий. После подтверждения оплаты пометьте его как «использованный» и не позволяйте пользователю вводить его снова. Если пользователь отменяет свой заказ, вы можете снова сделать код купона «неиспользованным».

0

Другие решения

В случае, если купон обработан вами,

Вы можете создать одну таблицу, 2 столбца:

coupon_id <— основной ключ
номер заказа <- вероятно, вы хотите, чтобы это было уникальным.

затем вы сохраняете купон там, или, если купон уже есть, вы проверяете, подходит ли он для того же order_id.

Это помогает? Пожалуйста, прокомментируйте, и я улучшу ответ.

0