【问题标题】:Clearing shopping cart after checkout结帐后清除购物车
【发布时间】:2019-11-02 10:18:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: php laravel session shopping-cart


    【解决方案1】:

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

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

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

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

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

    如果购物车详细信息存储在会话中,如果它们存储在您的数据库中,您可以在结帐开始时开始一个 mysql(假设您使用的是 mysql)事务,并为该特定用户清除购物车。如果付款失败,您可以回滚交易,让购物车中的所有内容保持原样。

    【讨论】:

    • 我已经完成了这个设置,但我问的是因为点击结帐后,他们会被带到不同的域来处理付款。我是否需要将它们重定向回我的应用程序才能清除会话?
    • 是的,您的支付网关没有中继/响应网址吗?必须有,否则您将如何确认付款。
    • 非常感谢您的帮助!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多