以条带形式获取客户的第一笔费用

时间:2017-07-13 14:45:41

标签: ruby

我正在阅读条纹文档,我想取一个客户的第一笔费用。目前我在做

charge_list = Stripe::Charge.list(
  {
    customer: "cus_xxx"
  },
  "sk_test_xxxxxx"
)
first_charge = charge_list.data.last

由于条带api按排序顺序返回费用列表,最近的费用首先出现。但我不认为这是一个好方法。任何人都可以帮助我如何获取客户的第一笔费用,或者我如何按创建日期的降序对列表进行排序,以便我可以从数组中获取第一个对象。

1 个答案:

答案 0 :(得分:1)

似乎条带API中没有逆序排序feature

另请注意,第一页费用可能不在第一页结果集中,因此您必须使用#auto_paging_each进行迭代。

快速解决方案:

charge_list = Stripe::Charge.list(
  {customer: "cus_xxx", limit: 100 }, # limit 100 to reduce request
  "sk_test_xxxxxx")

first_charge = nil
charge_list.auto_paging_each {|c| first_charge = c }

您可能希望将结果保留在某处,因为它是一个繁重的操作。

但IMO最干净的解决方案是将所有费用记录存储到您的数据库中并对其进行后续查询。