当我使用收费时,这很容易,只需创建一个收费而不收取资金,然后授权资金即可(当然,如果有足够的钱)。

但是在切换到PaymentIntent后,创建PaymentIntent时不会产生任何费用,因此不会自动筹集资金。当我打电话给paymentIntent.confirm()时,如果卡上有足够的资金,就会立即创建并收取费用。如果不是,则抛出CardException。

我需要一种授权资金的方法,或检查卡上是否有足够资金的其他方法,但是在致电之前请先确认。

有什么办法吗?

最佳答案

我设法通过将paymentIntent的capture_method设置为手动来做到这一点。默认值是自动的,因此请确认并创建并捕获相关费用。但是,如果将其设置为手动,则将在确认费用后创建(如果余额尚可),我们需要调用paymentIntent.capture()进行实际付款。

所以流程是


capture_method设置为manual的情况下创建paymentIntent
致电paymentIntent.confirm()授权资金
准备付款时,请致电paymentIntent.capture()进行付款


如果卡上没有足够的资金,则在第二步将抛出CardException。

10-02 21:58