首页 > 解决方案 > Stripe:将来自一个客户的多笔交易批量处理为一次收费并优化小额支付

问题描述

我的用例如下,用户必须在我的应用程序中一件一件地购买商品,并且在一天结束时,我将捕获之前进行的所有交易的付款。

问题是 Stripe 对每笔交易收取 2.9% + 30 美分,我想对其进行优化。

正如这里所写的那样https://support.stripe.com/questions/batch-multiple-transactions-from-one-customer-into-a-single-charge和这里​​的 Batching Transactions in Stripe似乎可以从一位客户一次收费。

我的问题是实现它的最佳方法是什么?我需要确认每笔交易,以便我可以锁定金额以便稍后获取。此外,一个用户可以为每笔交易使用不同的信用卡(据我所知,如果卡不同,则无法批量交易)。我尝试创建一个 PaymentIntent 并在每次交易后更新它(同一卡同一用户),但我收到此错误:

此 PaymentIntent 的金额无法更新,因为它的状态为 requires_capture。您只能使用以下状态之一更新 PaymentIntent 的金额:requires_payment_method、requires_confirmation、requires_action。

因此,由于 PaymentIntent 流程似乎不能解决我的问题,因此另一个选择是创建订阅。但我真的不明白如何在没有选项的情况下将其作为单次收费,recurring而且它似乎仅限于最多 20 个项目(我必须使用价格和产品 API 创建)https://stripe .com/docs/api/subscriptions/create

先感谢您!

标签: pythonapistripe-paymentspayment

解决方案


我尝试创建一个 PaymentIntent 并在每次交易后更新它(同一卡同一用户),但我收到此错误:

那是因为您在向客户收费后更新它(您必须确认 PaymentIntent — 无论当前金额是多少,它都会对附加的付款方式收费)。授权收费后,除了创建新的 PaymentIntent(这是一项新收费和新处理费)之外,您无法再做任何事情。

我需要确认每笔交易,以便我可以锁定金额以便稍后获取

这在 Stripe 上是不可能的,如果您“确认”(授权)客户卡上的费用,则会产生处理费。因此,另一种选择是您只需“虚拟”存储金额,然后进行一项大授权,这就是链接所描述的内容。

不过,您的想法很好,只需全天更新 PaymentIntent 的金额。一旦您对批量支付中要收取的所有交易数感到满意,请调用确认 API 以授权该总金额的费用。

对于订阅案例,没有 20 件商品的限制(那是另外一回事,对于您在一张发票中计费的经常性商品的数量)。创建发票项目只是为特定金额添加一个动态行项目,并且没有限制。


推荐阅读