E commerce 在重定向到基于表单的支付网关之前/之后处理订单

E commerce 在重定向到基于表单的支付网关之前/之后处理订单,e-commerce,payment-gateway,django-oscar,E Commerce,Payment Gateway,Django Oscar,我正在使用一个电子商务框架django oscar(oscar)。 在Oscar中,签出过程如下所示: 收集运输信息 选择付款方式并收集付款详细信息 预览订单并确认 冻结购物篮(防止操纵),处理付款并下订单 我正在集成一个基于表单的支付网关(需要发布包含支付详细信息的表单),现在结帐过程变得混乱: a。收集运输信息 b。选择付款方式 c。预览订单并确认 d。冻结购物篮并下未付订单 e。重定向到支付网关 f。退货时,将订单标记为已付款 我被这些问题困扰着: 1) (c)和(d)必须一步完成,因

我正在使用一个电子商务框架django oscar(oscar)。 在Oscar中,签出过程如下所示:

  • 收集运输信息
  • 选择付款方式并收集付款详细信息
  • 预览订单并确认
  • 冻结购物篮(防止操纵),处理付款并下订单
  • 我正在集成一个基于表单的支付网关(需要发布包含支付详细信息的表单),现在结帐过程变得混乱:

    • a。收集运输信息

      b。选择付款方式

      c。预览订单并确认

      d。冻结购物篮并下未付订单

      e。重定向到支付网关

      f。退货时,将订单标记为已付款

    我被这些问题困扰着:

    1) (c)和(d)必须一步完成,因为在(e)之前,站点和用户之间没有交互-我无法将客户重定向到支付网关,因此单击“确认”可将他/她直接移动到那里。由于在预览页面显示时订单已经下好,客户不可能从那里返回——购物篮将是空的。我可以在预览和支付网关之间放置另一个页面,但这看起来不是一个优雅的解决方案。还有别的吗

    2) 下订单意味着分配项目并将其从库存中移除(其他客户将无法购买),否则当客户从支付网关返回时,某些项目可能变得不可用。不可避免地,一些订单将被拖欠,因此项目将被保留。何时以及如何“无保留”并将其移回库存

    在我看来,这些问题并不是奥斯卡特有的,那么处理这些问题的最佳实践是什么呢

    谢谢


    另外,我在Oscar(,)中发现了一些关于集成基于表单的支付网关的讨论,但没有提到概述的问题

    交易完成后,从库存中移除产品。 并显示客户的新订单号

    让客户知道他们将收到一封包含所有相关详细信息的电子邮件,包括他们刚订购的产品

    获取购物车项目并将其插入订单项目数据库表。换句话说,公共购物车表应该与用于存放订单项目的表完全分开。那么你就不必担心“冻结”购物车的桌子等等


    如果在客户处于紧急状态时产品不可用怎么办 支付网关(其他人更快地购买)

    对于大多数商人来说,这种情况不会经常发生。但在正常业务过程中,产品没有库存的情况会有所不同。然后,商户联系客户,查看是否有其他适合的商品,或者他们是否会退还交易

    这就是说,如果你有一个产品,如特定座位的音乐会门票或限量版印刷品,在几分钟内售罄,那么你需要一个不同的系统


    基本上,你会提前告诉客户,你将持有物品5分钟,这足够让他们完成交易。你在每一步都提醒他们,如果他们不完成购买,他们可能会丢失物品

    如果当客户在支付网关上时产品变得不可用(其他人会更快地购买),该怎么办?如果你自己做的话,你可以在付款前发现这一点,但付款网关并不在意。“公共购物车”与随订单保存的购物车是分开的,因为在下订单时,公共购物车是空的。我澄清了问题(虽然不能缩短),请再看一看。