如何调用Stripe的refund->all接口查询特定时间段内超过10条退款记录
问题原因
你当前的写法错误拆分了Stripe PHP SDK refunds->all() 方法的参数:limit属于查询参数,必须和created时间筛选条件放在同一个数组中,第二个参数位仅用于传递请求配置项(比如你用到的stripe_account)。
修正后的单页查询代码
单次最多可拉取100条退款记录,代码如下:
注:Stripe接口限制limit参数最大值为100,超出该值的配置会被自动截断为100
$stripe_refunds = $this->stripe->refunds->all( [ 'created' => ['gte' => $date_from_unix, 'lte' => $date_to_unix], 'limit' => 100 ], [ 'stripe_account' => env('STRIPE_APP_CLIENT_ID') ] );
超出100条记录的全量拉取方案
如果目标时间段内退款总数超过100条,需要通过游标分页拉取全量数据,有两种实现方式:
- 手动分页:每次请求后取返回结果最后一条的
id作为下一次请求的starting_after参数值,循环请求直到返回结果条数小于100即可停止 - 自动分页迭代器:直接使用Stripe PHP SDK内置的自动分页方法,无需手动处理游标逻辑,示例代码如下:
$all_refunds = $this->stripe->refunds->all( [ 'created' => ['gte' => $date_from_unix, 'lte' => $date_to_unix], 'limit' => 100 ], [ 'stripe_account' => env('STRIPE_APP_CLIENT_ID') ] )->autoPagingIterator(); // 遍历即可获取所有符合条件的退款记录 foreach ($all_refunds as $refund) { // 处理单条退款逻辑 }
内容的提问来源于stack exchange,提问作者hardrock2005
相关产品推荐
相关产品推荐

