为什么设置limit=10000调用stripe.Charge.list仍仅返回最多100条Charge记录
Stripe Charge列表接口返回上限问题解答
- 核心原因是Stripe公共API对所有列表类接口的
limit参数做了最大100的硬性限制,即使你传入大于100的数值(比如你代码里写的10000),后端也会自动将该参数修正为100,单次请求最多只会返回100条数据。 - Stripe的列表查询默认采用分页返回逻辑,要拉取全量Charge记录,需要通过分页游标循环拉取多页数据,直到无更多数据返回为止。
你可以参考以下代码实现全量拉取:
import stripe stripe.api_key = "你的Stripe密钥" all_charges = [] current_last_id = None while True: # 单次拉取当前页最多100条 page_res = stripe.Charge.list(limit=100, starting_after=current_last_id) all_charges.extend(page_res["data"]) # 判断是否还有下一页 if not page_res["has_more"]: break # 记录当前页最后一条id作为下一页的起始游标 current_last_id = page_res["data"][-1]["id"]
注意:如果你的账户下Charge总量极大,建议在两次请求之间加短暂的休眠时间,避免触发Stripe的API频率限制。
内容的提问来源于stack exchange,提问作者Admia
相关产品推荐
相关产品推荐

