Stripe API是否支持查询日期范围?

15
使用 Stripe API,我希望能够查询日期范围,或者如果不行的话,查询某个任意日期之后之前的日期。 我知道可以查询基于精确日期的东西,例如:
https://api.stripe.com/v1/events?created=1336503409

但是我想要类似于这样的东西...

# Search for events where `created` is greater than the epoch time: 1336503400
https://api.stripe.com/v1/events?created__gt=1336503400 
4个回答

16

是的,从https://stripe.com/docs/api?lang=curl#list_events

created:基于事件创建日期的列表筛选器。该值可以是具有精确UTC时间戳的字符串,也可以是带有以下选项的字典

gt(可选)返回的值应该在此时间戳之后创建。

gte(可选)返回的值应该在此时间戳之后或等于此时间戳创建。

lt(可选)返回的值应该在此时间戳之前创建。

lte(可选)返回的值应该在此时间戳之前或等于此时间戳创建。

所以使用curl,您可以构建如下请求:

curl "https://api.stripe.com/v1/events?created%5Blt%5D=1337923293" \
 -u ${YOUR_API_KEY}:

未转义的查询参数为created[lt]=1337923293


很遗憾,在一次调用中似乎不可能获取两个日期之间的发票(例如,一个特定月份的发票)。 - Alessio
可以使用 Stripe::Charge.all(limit: 100, 'created[lt]' => timestamps, 'created[gte]' => timestamps }) - Deepesh Thapa

8

如果你想使用Ruby客户端来实现这个功能,以下是具体步骤:

Stripe::Charge.all(limit: 100, 'created[lt]' => timestamps })

5

同样的道理,您可以使用Python客户端来实现相同的功能,方法如下:

import stripe
from datetime import datetime, timedelta

my_date = '1/31/2011'
my_timestamp = datetime.strptime(my_date, "%m/%d/%Y").timestamp()


stripe.Charge.all(created={'lt': my_timestamp})

这正是我多日以来一直在寻找的。对我很有用。谢谢。 - Mobin Al Hassan

1

对于我们使用Go Api的人来说,以下两种格式都可用于选择范围:

params := &stripe.ChargeListParams{}
params.Filters.AddFilter("created", "lt", strconv.Itoa(1592217599))
params.Filters.AddFilter("created", "gt", strconv.Itoa(1591612124)) 
i := charge.List(params)

params := &stripe.ChargeListParams{}
params.Filters.AddFilter("created[lt]", "", strconv.Itoa(1592217599))
params.Filters.AddFilter("created[gt]", "", strconv.Itoa(1591612124))
i := charge.List(params)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接