Ruby 从一位顾客那里拿到第一笔费用

Ruby 从一位顾客那里拿到第一笔费用,ruby,Ruby,我正在阅读stripe文档,我想向客户收取第一笔费用。目前我正在做 charge_list = Stripe::Charge.list( { customer: "cus_xxx" }, "sk_test_xxxxxx" ) first_charge = charge_list.data.last 因为stripe api以排序的顺序返回费用列表,最新的费用首先出现。但我认为这不是一个好办法。有谁能帮助我如何获取客户的第一笔费用,或者如何按照创建日期的降序对列表进行排序,以

我正在阅读stripe文档,我想向客户收取第一笔费用。目前我正在做

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

因为stripe api以排序的顺序返回费用列表,最新的费用首先出现。但我认为这不是一个好办法。有谁能帮助我如何获取客户的第一笔费用,或者如何按照创建日期的降序对列表进行排序,以便从数组中获取第一个对象。

stripe API中似乎没有逆序排序

还请记住,第一次充电可能不在第一页结果集中,因此您必须使用进行迭代

快速可行的解决方案:

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 }
由于这是一个繁重的操作,您可能希望将结果保存在某个地方


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

谢谢!这对我有用。我不想更新那里的数据库,因为我在后台工作中添加了这段代码。很高兴帮助@MuhammadAli!如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。