【问题标题】:Multipayment Order processing / Refund多付款订单处理/退款
【发布时间】:2015-07-25 23:16:53
【问题描述】:

我正在开发一个电子商务应用程序,目前我的网站只处理一种支付方式,信用卡/BML 或贝宝, 现在我必须添加另一种付款方式,即礼品卡。客户可以通过多种付款方式支付订单总额。例如 5张礼品卡, 1 张信用卡和多张礼品卡等

我目前的db结构如下

   OrderTable
   --------------------------------------------------
   OrderID | OrderNumber | .. and many more columns 


   OrderPayment Table 
   -----------------------------------------------------------
    ID | OrderID | Payment Mode (CC,Paypal,BML) | Amount |

这些表是一对一的关系,现在我需要将支付方式拆分为多种支付方式。我如何通过对现有架构进行最小的更改来实现这一点。

其次,当使用多种付款方式处理订单时,我如何按顺序处理退款(全额退款,部分退款),我如何确保将确切金额退款到最初下订单的付款方式。例如,如果客户下了 100 美元的订单并从信用卡支付 60 美元,从一张礼品卡支付 30 美元,从另一张礼品卡支付 10 美元,当此订单退款时,我如何将确切金额退还给 CC 和 GC。

【问题讨论】:

  • 从您发布的结构来看,我认为单个订单接收多笔付款没有任何问题。退款逻辑需要更多信息才能提供更多帮助。如果是全额退款,应该很简单。如果是部分退款,您需要确定要处理的订单。

标签: asp.net sql-server database e-commerce


【解决方案1】:

另一种解决方案是不将礼品卡视为一种付款方式,而是将其视为优惠券。这样,礼品卡就会从总金额中扣除,您仍然可以只使用一种付款方式付款。

在我使用的工具中,这些被称为服务行项目(与产品行项目相对),其中包含运费、折扣等内容......其中之一是礼品卡。

这应该会使退款更容易,因为您最终只会收到一笔付款。这确实意味着您需要创建单独的逻辑来退还优惠券。

【讨论】:

  • 感谢您的建议,但我必须使用 3rd 方 GC 而不是优惠券。
猜你喜欢
  • 1970-01-01
  • 2011-12-19
  • 2014-04-07
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2015-12-23
  • 2013-04-17
相关资源
最近更新 更多