Stripe API - BalanceTransaction 列表
Stripe API - BalanceTransaction List
根据 Stripes 文档 here 如果您在获取余额交易列表时添加 Stripe 对象 ID 作为源,您应该获得与该 ID 相关的 all 交易. (例如,按收费 ID 过滤将 return 所有收费和退款交易)。
我已经尝试传递一个 chargeId 并且确实取回了为该费用创建的初始余额交易,但是该费用还有 2 笔与之相关的退款,这些退款未在列表中 returned .我已经用其他费用尝试过这个并且似乎只取回创建的初始余额交易,从来没有任何其他交易(特别是文档说应该 returned 的退款)。我将我的限制设置为 100 个项目,我尝试使用 Stripe.Net API 和 PHP 调用并返回相同的结果。
我还尝试传递 customerId 以查看是否可以取回客户触发的所有余额交易,在这些情况下,我根本无法取回任何结果。这些是触发了许多交易的客户!
我提供给 API 的参数如下:
Method: balance/list
Parameters: limit=100
source=[chargeId or customerId that has triggered multiple transactions]
我的问题是:这是 API 中的错误吗?文档是否不正确,或者我是否遗漏了一个重要的参数或方面。我还回顾了 30 多天前的收费,只是为了确保它与滚动 transfer/pending/availability 周期无关。
事实上,您只能取回由 chargeId 创建的初始交易,而不能取回其他任何东西。有人在这方面有经验吗?提前致谢!
看起来这确实是 Stipe 文档中的错误或错误。我已将此事报告给 Stripe,并且刚刚收到支持团队成员发回的以下消息:
您好,
感谢您联系我们并提醒我们注意这个问题!
这看起来确实像是我们文档中的错误或错误。我已经与我的团队分享了这一点,我们正在调查这个问题。
感谢您使用 Stripe,如果还有什么我们可以帮忙的,请告诉我!
一旦我收到 Stripe 的更新或解决方案,我将更新此线程。
我的直觉是这不是错误:Stripe 的行为在技术上是正确的。 BalanceTransaction API 正在返回该特定费用的所有交易,这只是一个交易。与费用退款相关的 txns 在技术上与那些退款对象相关联,而不是费用。同样的逻辑适用于 disputes/chargebacks.
这里有一些(未经测试!)ruby 代码演示如何获取所有 txns 以收取费用:
def balance_transactions_for_charge(stripe_charge_id)
balance_transactions = []
charge = Stripe::Charge.retrieve(stripe_charge_id)
balance_transactions << charge.balance_transaction
balance_transactions += charge.refunds.data.map do |refund|
refund.balance_transaction
end
if charge.dispute
dispute = Stripe::Dispute.retrieve(charge.dispute)
# fairly certain that the dispute txn list includes the full object, not just IDs
balance_transactions += dispute.balance_transactions.data.map(&:id)
end
balance_transactions.map { |txn_id| Stripe::BalanceTransaction.retrieve(txn_id) }
end
根据 Stripes 文档 here 如果您在获取余额交易列表时添加 Stripe 对象 ID 作为源,您应该获得与该 ID 相关的 all 交易. (例如,按收费 ID 过滤将 return 所有收费和退款交易)。
我已经尝试传递一个 chargeId 并且确实取回了为该费用创建的初始余额交易,但是该费用还有 2 笔与之相关的退款,这些退款未在列表中 returned .我已经用其他费用尝试过这个并且似乎只取回创建的初始余额交易,从来没有任何其他交易(特别是文档说应该 returned 的退款)。我将我的限制设置为 100 个项目,我尝试使用 Stripe.Net API 和 PHP 调用并返回相同的结果。
我还尝试传递 customerId 以查看是否可以取回客户触发的所有余额交易,在这些情况下,我根本无法取回任何结果。这些是触发了许多交易的客户!
我提供给 API 的参数如下:
Method: balance/list
Parameters: limit=100
source=[chargeId or customerId that has triggered multiple transactions]
我的问题是:这是 API 中的错误吗?文档是否不正确,或者我是否遗漏了一个重要的参数或方面。我还回顾了 30 多天前的收费,只是为了确保它与滚动 transfer/pending/availability 周期无关。
事实上,您只能取回由 chargeId 创建的初始交易,而不能取回其他任何东西。有人在这方面有经验吗?提前致谢!
看起来这确实是 Stipe 文档中的错误或错误。我已将此事报告给 Stripe,并且刚刚收到支持团队成员发回的以下消息:
您好, 感谢您联系我们并提醒我们注意这个问题! 这看起来确实像是我们文档中的错误或错误。我已经与我的团队分享了这一点,我们正在调查这个问题。 感谢您使用 Stripe,如果还有什么我们可以帮忙的,请告诉我!
一旦我收到 Stripe 的更新或解决方案,我将更新此线程。
我的直觉是这不是错误:Stripe 的行为在技术上是正确的。 BalanceTransaction API 正在返回该特定费用的所有交易,这只是一个交易。与费用退款相关的 txns 在技术上与那些退款对象相关联,而不是费用。同样的逻辑适用于 disputes/chargebacks.
这里有一些(未经测试!)ruby 代码演示如何获取所有 txns 以收取费用:
def balance_transactions_for_charge(stripe_charge_id)
balance_transactions = []
charge = Stripe::Charge.retrieve(stripe_charge_id)
balance_transactions << charge.balance_transaction
balance_transactions += charge.refunds.data.map do |refund|
refund.balance_transaction
end
if charge.dispute
dispute = Stripe::Dispute.retrieve(charge.dispute)
# fairly certain that the dispute txn list includes the full object, not just IDs
balance_transactions += dispute.balance_transactions.data.map(&:id)
end
balance_transactions.map { |txn_id| Stripe::BalanceTransaction.retrieve(txn_id) }
end