13

使用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

4 回答 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.

于 2012-05-25T05:25:17.540 回答
7

如果您正在寻找如何使用ruby​​ 客户端来执行此操作,那么它是:

Stripe::Charge.all(limit: 100, 'created[lt]' => timestamps })
于 2015-12-23T00:44:49.797 回答
3

沿着同样的路线。您可以使用 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})
于 2016-02-02T21:54:19.260 回答
0

对于我们这些使用 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)
于 2020-11-04T11:12:22.760 回答