Stripe:将来自一个客户的多笔交易批量化为一次收费并优化小额支付

Stripe: batch multiple transactions from one customer into a single charge and optimise micropayments

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

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

如此处所写https://support.stripe.com/questions/batch-multiple-transactions-from-one-customer-into-a-single-charge and here Batching Transactions in Stripe 似乎可以将来自一个客户的交易分批处理为一次收费。

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

This PaymentIntent's amount could not be updated because it has a status of requires_capture. You may only update the amount of a PaymentIntent with one of the following statuses: requires_payment_method, requires_confirmation, requires_action.

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

提前致谢!

I tried creating a PaymentIntent and updating it after each transaction (same card same user) but I got this error:

那是因为您在向客户收费后更新了它(您必须确认 PaymentIntent — 无论当前金额是多少,它都会通过附加的付款方式收费)。授权收费后,您只能创建新的 PaymentIntent(这是新的收费和新的处理费)。

I need each transaction to be confirmed so I can lock the amount to capture it later

这在 Stripe 上是不可能的,如果您 'confirm'(授权)在客户的卡上收费,就会产生手续费。因此,另一种选择是您只需存储金额 'virtually',然后进行一次大授权,这就是链接所描述的内容。

不过你的想法很好,只需更新全天的 PaymentIntent 金额即可。一旦您对在批量付款中计算了所有要收费的交易感到满意,请致电确认 API 以授权对该总金额收费。

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

谢谢@karllekko 给我指出正确的方向

最后,我设法使用设置意图 API 与支付意图 API 和支付方式配对,以获得强大的自定义 Stripe 支付体验。