3

我正在构建一个简单的电子商务来处理我的订单请求(这是一个不同的电子商务,因为我将销售印刷电路板)。

所以,最大的问题是:当用户进入结账时,他的购物车中有物品我应该怎么做:

  • 完成订单,将 session 中的数据插入数据库,然后将状态设置为 pending并等待支付公司的付款(如 PayPal,但来自巴西)
  • 或者,我应该只在用户为产品付款时下订单(当我收到回调时)

对此的怀疑,是因为在付款前下订单,可能会在数据库上创建很多未付款的订单(一些临时清理应该可以)。

付款后下订单可能会很困难,因为付款公司只给我返回几个字段(每个印刷电路板我都有很多字段)。

也许我已经给出了“答案”,但我真的对此感到困惑,我会欣赏第二个意见......

谢谢

4

3 回答 3

4

好吧,从逻辑上考虑。下单时,无论订单最终是否通过,您都希望存储订单信息。有多种原因:

  • 分析您的订单(有多少通过付款等)
  • 跟踪需要付款的用户的待处理订单。

...在其他用途​​中。

由此,您可以得出结论,您肯定要存储挂单。将信息存储在单独的数据库/表中是没有意义的。

您应该意识到的一件重要的事情是,即使从未通过的挂单也可以用于其他目的,因此它们应该包含在其他确实通过的订单中。

于 2012-08-12T03:45:07.020 回答
3

我过去所做的是:

  1. 他们点击“确认付款”的那一刻,我将订单添加到数据库中,状态为待处理。
  2. 下一步是与支付公司沟通并获得回复。
  3. 使用支付网关的响应更新状态

这样,您还可以跟踪任何奇怪的差异,例如拒绝交易(例如被盗卡)。

于 2012-08-12T03:43:23.750 回答
0

这确实是一个设计选择,但是如果您不想处理用户未付款的订单,则在用户付款后下订单似乎相当合乎逻辑。

因此,用户支付 -> 将订单添加到数据库,然后跟踪您需要的任何其他信息。

我能想到的唯一另一个示例是您希望事先添加到数据库的位置,例如愿望清单

于 2012-08-12T03:46:28.703 回答