当我使用收费时,这很容易,只需创建一个收费而不收取资金,然后授权资金即可(当然,如果有足够的钱)。
但是在切换到PaymentIntent后,创建PaymentIntent时不会产生任何费用,因此不会自动筹集资金。当我打电话给paymentIntent.confirm()
时,如果卡上有足够的资金,就会立即创建并收取费用。如果不是,则抛出CardException。
我需要一种授权资金的方法,或检查卡上是否有足够资金的其他方法,但是在致电之前请先确认。
有什么办法吗?
最佳答案
我设法通过将paymentIntent的capture_method
设置为手动来做到这一点。默认值是自动的,因此请确认并创建并捕获相关费用。但是,如果将其设置为手动,则将在确认费用后创建(如果余额尚可),我们需要调用paymentIntent.capture()进行实际付款。
所以流程是
在capture_method
设置为manual的情况下创建paymentIntent
致电paymentIntent.confirm()
授权资金
准备付款时,请致电paymentIntent.capture()
进行付款
如果卡上没有足够的资金,则在第二步将抛出CardException。