Stripe API:列出所有费用

时间:2013-03-25 12:17:18

标签: php stripe-payments

我正在使用https://stripe.com/docs/api?lang=php#list_charges获取列出所有费用,但在此处指定

  

count可选 - 默认值是对象数量的限制   回。计数可以在1到100个项目之间。

我有成千上万的条目,现在我怎么能得到所有条目。虽然如果我将计数设置为 100 ,它会返回 110 记录。

6 个答案:

答案 0 :(得分:18)

您可以使用Offset参数。

获得100笔交易后,请在网址中添加offset = 100再拨打一次电话。

这将带来下一个100交易,然后使offset = 200等等

<强>更新 偏差参数部分被删除:Link

答案 1 :(得分:2)

是的我用偏移得到它我们可以得到所有记录。 enter image description here

答案 2 :(得分:2)

$charges = \Stripe\Charge::all();
foreach ($charges->autoPagingIterator() as $charge) {
  // Do something with $charge
}

Reference.

答案 3 :(得分:0)

这是一个PHP示例:\Stripe\Charge::all(array("limit" => 3, "offset" => 10));

Ruby示例: Stripe::Charge.all(limit: 3, offset:3)

与Stripe API文档一样好,他们可以更清楚地了解如何过滤。

来源:https://stripe.com/docs/api/php#list_chargeshttps://stripe.com/docs/api/ruby#list_charges

答案 4 :(得分:0)

  

如果不建议使用偏移量

  $result = [];
  $created_at = strtotime($request->end_data);
  //created_at should be today's date epoch. search google for epoch
  $has_more = false;
  $a = 0;
  do{
  print_r($a);
  \Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));
  $temp = \Stripe\BalanceTransaction::all( array(
                'limit'   => 100,
                'created' => array(
                    'lte' => $created_at,
                )
              ));
  $result = array_merge($temp->data,$result);
  $created_at = $temp->data[99]->created_at;
  //api returns a parameter has_more(boolean), which means there is more 
  //data or not so you can also put that in while condition, for ex.
  // $has_more = $temp->has_more;
  $a++;

  }while($a < 5);

  dd($result);

这对我有用,我能够一次获得500条记录,因为$ a <5 api命中5次,并且每次创建的参数(每个参数的lte(小于相等)都改变)请求并返回比当前请求提供的记录还早的记录。我也将每个api调用的结果附加到另一个结果数组

答案 5 :(得分:-3)

不幸的是你不能。

我可以看到这样的功能在会计目的或其他方面很好用,但在向用户显示大量数据时实现某种分页通常是更好的用户体验。

如果您需要绝对控制一次显示的记录数量,我建议您在charge.succeeded事件上设置webhook并在本地存储您的费用。