结账后清空购物车

Clearing shopping cart after checkout

我在 laravel 中使用会话实现了购物车。现在,我想我有点不清楚如何在结帐后为每个用户清除购物车。我的理解是会话在浏览器打开时创建,在浏览器关闭时销毁。我还知道会话是在用户机器上创建的。我将如何在用户签出后销毁该会话对象?

我知道的是,如果付款成功,状态代码将被发送回我的应用程序中的路线,该路线将触发清除购物车功能。我是否误解了会话的运作方式?

我希望当用户完成交易时,支付网关将 return 一个代码,我可以使用该代码来清除会话。

是的,您可以在交易成功时清除购物车的会话值。

假设您将购物车详细信息存储在名为 cart 的会话中,您可以像这样从会话中删除它:

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

或者像这样使用辅助方法:

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

这是如果购物车详细信息存储在会话中,如果它们存储在您的数据库中,您可以在开始时开始 mysql(假设您正在使用 mysql)交易结帐并清除该特定用户的购物车。如果付款失败,您可以回滚交易,让购物车中的所有东西都完好无损。