您好,我需要一个付款程序,首先我需要授权支付一定金额,比方说10,几天后我需要在产品交付给用户时获取金额,我可以调整我的意思可以从卡中捕获9。 如何做这个braintree sdk。
答案 0 :(得分:1)
完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support。
在Braintree API中制作transaction.sale
call后,您实际上只创建了authorization。一旦您准备好捕获资金,您就可以使用submit_for_settlement
来执行此操作。该调用包含一个名为amount
, which allows you to control the amount you actually capture from the transaction的参数。
假设您以10美元的费用创建了授权书。你可以解决这个问题,只收9美元这样:
result = Braintree::Transaction.submit_for_settlement("<transaction_id>", "9.00")
有两个限制需要注意。首先,您只能获得等于或低于授权金额的金额。其次,授权最终将在卡组织设定的一段时间后到期。许多团体将其授权设置为在7天或30天后过期。授权到期后,无法解决。
如果授权对您的业务时间线过快,您也可以save the card in your vault并稍后创建一个不同金额的交易。