Spree 中订单付款的部分捕获

Partial Captures on Order payment in Spree

我正在使用 Spree,并且我已根据客户要求对其进行了修改。卡在一个修改上,求专家意见


Spree默认提供的机箱

Spree 提供订单自动捕获的默认付款 on/off 并捕获全额付款


我想要的修改

自动捕获模式 = 关闭

  1. 验证用户在其帐户中有一定金额可以小于订单总额。
  2. 捕获部分付款并将剩余金额存储在某处。
  3. 当订单在装运等后完成或完成一些其他操作时,获取剩余金额。

我的问题

  1. 我应该如何修改 Spree 来完成这些任务?

  2. 如果我在自动捕获 = 关闭的情况下进行了 5 美元的交易,是否可以在交易该 5 美元授权时捕获 10 美元?如果不可能,那么我是否必须使用 OAuth 令牌将此 5 美元的交易金额更新为 10 美元。如果是,那么如何?


额外信息

我想要通过使用 Spree Payments 类 的网关独立解决方案,这样我就不必为我集成的每个网关配置它。现在我有 7-8 个网关,包括 Stripe 和 Paypal。


为我的问题创建案例,只是一个例子

总订单付款 = 50 美元。

  1. 首先我想确认用户在 his/her 帐户中有 10 美元?

  2. 如果用户有 10 美元,则在自动捕获模式 = 关闭的情况下进行交易,并以某种方式保留剩余金额,即 50 美元 - 10 美元记录在某处。

  3. 现在我收到 10 美元,2 天后发货完成。现在我想获取剩余的 40 美元并完成订单。

您的问题必须在每个单独的支付网关的上下文中回答,因为每个支付网关都按照不同的规则运行。

您问的问题太多,无法提供具体答案,但一般来说,CNP(无卡)交易不会让您获得超过授权金额的金额,但这取决于您的行业和与您达成的交易您的商家和支付处理商。

2- If I make a transaction of with auto-capture = off, Is it possible to capture when transacting that authorization? If it is not possible, then do I have to update this transaction's amount with using OAuth Token. If yes, then how?

通常您不会 "update" 不同金额的先前交易(尽管正如我上面所说,在其他行业中有时可能会以高于授权金额的金额捕获)。您应该授权您 可能 想要捕获的总金额,然后在货物运送或服务交付时向您的支付网关发出多次捕获调用(根据 CC 行业规则,您通常在您交付服务之前不允许捕获。)

我不知道有任何支付网关使用 "Oauth tokens" 进行通信,这通常是基于身份验证的技术,而不是基于 API 的技术。

-> I want gateway independent solution by using Spree Payments classes so that I don't have to configure this for each Gateway I integrate. Right now I have 7-8 gateways including Stripe and Paypal.

听起来像是一场巨大的灾难。摆脱它们,单独调试每个网关的时间使这成为一个绝对疯狂的想法。

Total Order Payment = . 1) First of all I want to verify that user has in his/her account?

通常您无法 "peak" 进入某人的私人银行帐户并查看他们有多少钱 -- 这是您发明的功能。您可以做的是授权您将来可能要收取的总金额。

2) If user has then make a transaction with auto capture mode = off and in someway keep remaining amount i.e - in record somewhere. 3) Now I capture and after 2 days shipment gets completed. Now I want to capture that remaining and order gets completed.

您需要的是一次授权多次捕获。致电您的支付处理商代表并与他们就此事进行对话,了解您的商家和处理商帐户受哪些规则约束。