我正在使用https://stripe.com/docs/api?lang=php#list_charges获取列出所有费用,但在此处指定
count可选 - 默认值是对象数量的限制 回。计数可以在1到100个项目之间。
我有成千上万的条目,现在我怎么能得到所有条目。虽然如果我将计数设置为 100 ,它会返回 110 记录。
答案 0 :(得分:18)
您可以使用Offset
参数。
获得100笔交易后,请在网址中添加offset = 100
再拨打一次电话。
这将带来下一个100交易,然后使offset = 200等等
<强>更新强> 偏差参数部分被删除:Link
答案 1 :(得分:2)
是的我用偏移得到它我们可以得到所有记录。
答案 2 :(得分:2)
$charges = \Stripe\Charge::all();
foreach ($charges->autoPagingIterator() as $charge) {
// Do something with $charge
}
答案 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_charges,https://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并在本地存储您的费用。