冻结银行卡内的资金Charges API
旧版 API
用 Charges API 先授权付款,之后再捕获资金。
Stripe 支持银行卡两步验证付款,因此可以先对收款进行授权,然后等待其稍后结算(捕获)。授权收款后,发卡行会冻结客户银行卡上的资金来保证此金额,通常最长为 7 天,用 Terminal 进行的线下付款为2 天s。收款上的 payment_method_details.card.capture_before 属性表示授权的过期时间。
如果未在该时间内捕获该笔收款,授权取消,资金释放。
授权付款
要授权一笔付款而不进行捕获,做一个收款请求,其中也包含 capture
参数,值为 false。这样可指示 Stripe 仅授权客户银行卡上的金额。
注意
如需取消某个授权,可通过向相应的 Charge
对象退款来释放它。
捕获资金
要结算一笔授权的收款,发出一个捕获收款请求。默认会捕获授权的总金额——不能超出。如果要捕获的金额小于初始金额(例如,授权了 10 美元,要捕获 8 美元),则传递 amount
参数。部分捕获收款后会自动释放剩余金额。
某些发卡行出具的银行卡对账单不会区分显示授权和捕获(已结算)的收款,有时候会给客户造成混淆。此外,已授权的收款只能被捕获一次。如果部分捕获了一笔收款,则不能再次捕获差额。根据您的需求,最好是保存客户的银行卡详情供以后使用,然后根据需要创建收款。