Модель блокировки корзины с Paypal - PullRequest
0 голосов
/ 28 марта 2011

В настоящее время я внедряю Paypal Express Checkout в приложении Zend Framework, я написал свою собственную модель корзины, которая состоит из двух простых классов Cart & CartItem, и они могут определять количество, получать общую стоимость и т. Д.

Я не очень осведомлен о платежной системе, и я использую только Paypal (это мой первый раз), но я хотя, поскольку я не в состоянии контролировать, что там происходит (в Paypal), это хорошая идея, чтобы "заблокировать корзину в начале процесса (при перенаправлении на Paypal), чтобы избежать несоответствий по текущему заказу, обработанному PayPal, и фактической корзине на веб-сайте.

Это может произойти, например, если пользователь откроет новую вкладку и попытается добавить продукты, пока он находится в процессе оплаты через PayPal.

Если ваша корзина заблокирована, использование не может добавитьили удалите что-нибудь из своей корзины, пока он не закончит обрабатывать платежную систему PayPal или отменить свой заказ.

Мой вопрос, как вы думаете, это хороший подход?

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

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Я сделал это по-другому.

Когда пользователь просматривает сайт, корзина хранится с использованием сеанса, файла cookie или чего-либо еще.

Как только он нажимает «оплатить»", содержимое корзины попадает в таблицу данных orders с уникальным идентификатором.Вы удаляете сеанс или куки, чтобы помешать ему добавить новые вещи в заказ.Вы используете уникальный идентификатор, чтобы передать его PayPal.После оплаты Paypal возвращается к вам с IPN и возвращает уникальный идентификатор.Исходя из этого, вы знаете, что он оплачен и может положить логическое значение или что-то в вашу таблицу orders.

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

0 голосов
/ 28 марта 2011

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

Вариант использования:

  • заполнить корзину
  • стартовый платеж
  • ах, я забыл носки
  • закрыть вкладку оплаты
  • магазин открыт в другой вкладке
  • добавить носки
  • «Вы не можете добавить, он заблокирован»
  • Я не могу вернуться к оплате, чтобы отменить ее, и не могу ничего добавить в корзину => Я ухожу
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...