Stripe API - BalanceTransaction列表

时间:2015-02-25 19:58:34

标签: stripe-payments stripe.net

根据Stripes文档here,如果您在获取余额交易列表时添加Stripe对象ID作为来源,则应获得与该ID相关的所有交易。 (例如,按费用ID过滤将返回所有费用和退款交易)。

我已经尝试传入chargeId并且确实收回了为该费用创建的初始余额交易,但是此费用还有2个与之关联的退款,但未在列表中返回。我已经尝试了其他费用,并且似乎只是回到创建的初始余额交易,从来没有任何其他交易(特别是退款,文档说应该返回)。我的限制设置为100项,我尝试使用Stripe.Net API以及PHP调用,并获得相同的结果。

我还试图传入customerId,看看我是否可以收回客户触发的所有余额交易,在这些情况下,我根本不会收到任何结果。这些是触发了许多交易的客户!

我向API提供的论据如下:

Method:     balance/list
Parameters: limit=100
            source=[chargeId or customerId that has triggered multiple transactions]

我的问题是:这是API中的错误,文档是否不正确,或者是否存在重要的参数或方面,我不知道。我还要回到30多天前的收费,以确保它与滚动转移/待定/可用性周期无关。

实际上,您只能获得由chargeId创建的初始事务,但没有别的。任何人都有这方面的经验吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

看起来这确实是一个错误或Stipe文档中的错误。我已经向Stripe报告了此消息,并且刚从支持团队的某个人那里收到了以下消息:

你好, 感谢您与我们联系,并提醒我们注意这个问题! 这看起来像我们的文档中的错误或错误。我与我的团队分享了这个,我们正在研究这个问题。 感谢您使用Stripe,如果我们还有其他任何可以帮助的地方,请告诉我们!

一旦我从Stripe收到更新或解决方案的回复,我将更新此帖子。

答案 1 :(得分:0)

我的预感是这不是一个错误:条纹行为在技术上是正确的。 BalanceTransaction API返回特定费用的所有txns,这只是一个txn。与费用退款相关的txns在技术上与这些退款对象相关联,而非费用。同样的逻辑适用于纠纷/退款。

这里有一些(未经测试的!)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