You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Braintree Transaction.search()能否获取交易手续费金额?

获取Braintree交易手续费金额的解决方案

首先直接给结论:你确实可以通过Braintree Node.js SDK获取手续费金额,但Transaction.search()方法默认不会返回serviceFeeAmount字段的有效值——这就是你看到该字段为null的原因。下面是具体的解决办法和细节说明:

原因分析

Braintree的搜索API为了优化性能,默认只返回交易的基础核心字段,手续费金额这类附加统计字段不会被自动包含在搜索结果中。另外要注意:只有当交易处于**已结算(settled)**状态时,手续费金额才会被计算并返回;如果交易还未结算(比如处于authorized或submitted_for_settlement状态),即使你正确请求该字段,它也会是null。

解决方案一:在搜索时显式请求包含手续费

你可以在搜索构建器中添加includeServiceFee()方法,告诉API返回手续费相关字段。修改你的搜索代码如下:

const stream = gateway.transaction.search((search) => {
  search.createdAt().between(start, end);
  search.includeServiceFee(); // 新增这一行,显式请求包含手续费
});

这样返回的transaction对象中,serviceFeeAmount就会填充对应的手续费金额(前提是交易已结算)。

解决方案二:通过单个交易查询获取完整详情

如果你的SDK版本不支持includeServiceFee(),或者你只想在需要时获取手续费,可以先通过搜索拿到交易ID,再调用transaction.find()方法获取完整的交易详情,该方法会返回包含手续费在内的所有字段:

stream.on("data", async (transaction) => {
  // 通过交易ID查询完整详情
  const fullTransaction = await gateway.transaction.find(transaction.id);
  result.push(fullTransaction);
});

注意:这种方式会增加额外的API调用次数,如果需要处理大量交易,建议优先使用方案一以减少请求开销。

内容的提问来源于stack exchange,提问作者wscourge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:31:32