Очистка корзины после оформления заказа - PullRequest
0 голосов
/ 19 июня 2019

Я реализовал корзину покупок в laravel, используя сеансы.Теперь я думаю, что мне не совсем ясно, как я могу очистить корзину для каждого пользователя после оформления заказа.Насколько я понимаю, сессии создаются, когда браузер открыт, и уничтожаются, когда он закрыт.Я также понимаю, что сессии создаются на компьютере пользователя.Как бы я мог уничтожить этот объект сеанса после того, как пользователь выписался?

Что у меня есть, код состояния будет отправлен обратно в маршрут в моем приложении, который вызовет функцию очистки корзины, еслиоплата прошла успешно.Я неправильно понял, как работают сеансы?

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

1 Ответ

0 голосов
/ 19 июня 2019

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

Если вы сохраняете данные корзины в сеансе в ключе cart , вы можете удалить его из сеанса следующим образом:

$request->session()->forget('cart'); 

или использовать вспомогательный метод, напримерthis:

session()->forget('cart');

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...