Asp.net 多付款订单处理/退款

Asp.net 多付款订单处理/退款,asp.net,sql-server,database,e-commerce,Asp.net,Sql Server,Database,E Commerce,我正在开发一个电子商务应用程序,目前我的网站只处理一种支付方式,即信用卡/BML或贝宝, 现在我必须添加另一种付款方式,即礼品卡。客户可以通过多种付款方式支付订单总额。例如 5张礼品卡, 1张信用卡和多张礼品卡等 我目前的数据库结构如下 OrderTable -------------------------------------------------- OrderID | OrderNumber | .. and many more columns Order

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

我目前的数据库结构如下

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


   OrderPayment Table 
   -----------------------------------------------------------
    ID | OrderID | Payment Mode (CC,Paypal,BML) | Amount |
这些表具有一对一的关系,现在我需要将支付模式拆分为多个支付模式。如何通过对现有架构进行最小的更改来实现这一点


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

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

在我使用的工具中,这些被称为服务线项目(与产品线项目相对应),其中包含诸如运输成本、折扣等内容。。。其中之一是一张礼品卡


这将使退款更容易,因为你最终将只有一次付款。这意味着您需要创建单独的逻辑来退款优惠券。

从您发布的结构来看,我看不出一个订单收到多笔付款有任何问题。退款逻辑需要更多的信息才能提供更多帮助。如果是全额退款的话,应该是相当直接的。如果是部分退款,您需要确定要处理的订单。谢谢您的建议,但我必须使用第三方GC而不是优惠券。