如何通过Stripe Charge API获取交易中的实际手续费金额?
获取Stripe交易实际手续费的方法
Stripe的Charge对象本身不会直接返回手续费金额,你需要通过**余额交易(Balance Transaction)**来获取这一信息——手续费属于资金流向的一部分,Charge关联的Balance Transaction会包含详细的费用明细。
具体实现步骤
- 调用Charge API拿到Charge对象后,提取
charge.BalanceTransactionId字段 - 使用
BalanceTransactionService.GetAsync()方法,传入该ID和对应的StripeAccount参数,获取Balance Transaction对象 - 从Balance Transaction的
Fee属性读取实际手续费金额(单位为对应货币的最小单位,比如美元以“分”为单位)
示例代码
var charge = await chargeService.GetAsync( invoice.StripeChargeId, requestOptions: new RequestOptions { StripeAccount = account.StripeAccountId }); // 获取关联的余额交易 var balanceTransactionService = new BalanceTransactionService(); var balanceTransaction = await balanceTransactionService.GetAsync( charge.BalanceTransactionId, requestOptions: new RequestOptions { StripeAccount = account.StripeAccountId }); // 实际手续费(最小货币单位,如美元为分) var actualStripeFee = balanceTransaction.Fee; // 转换为常规货币单位(如美元) var feeInDollars = actualStripeFee / 100.0m;
补充说明
Fee字段是Stripe收取的所有费用总和,包含可能的额外扣除项(如退款手续费、评估费等)- 如果需要拆分手续费明细(比如区分2.9%的费率部分和30c的固定费用),可以查看Balance Transaction的
FeeDetails列表,里面会展示每一项费用的类型、金额和费率说明
内容的提问来源于stack exchange,提问作者Andrei
相关产品推荐
相关产品推荐

