根据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创建的初始事务,但没有别的。任何人都有这方面的经验吗?提前谢谢!
答案 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