是否可以使用 Stripe API 查询日期时间范围?
Posted
技术标签:
【中文标题】是否可以使用 Stripe API 查询日期时间范围?【英文标题】:Is it possible to query for datetime ranges with the Stripe API? 【发布时间】:2012-05-31 08:04:54 【问题描述】:使用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
【问题讨论】:
【参考方案1】:是的。来自https://stripe.com/docs/api?lang=curl#list_events
已创建:基于事件创建日期的列表过滤器。该值可以是具有精确 UTC 时间戳的字符串,也可以是具有以下选项的字典:
gt(可选)应在此时间戳之后创建返回值。
gte(可选)返回值应在此时间戳之后或等于该时间戳之后创建。
lt(可选)应在此时间戳之前创建返回值。
lte(可选)返回值应该在此时间戳之前或等于该时间戳之前创建。
因此,使用 curl,您可以构建这样的请求:
curl "https://api.stripe.com/v1/events?created%5Blt%5D=1337923293" \
-u $YOUR_API_KEY:
未转义查询参数是created[lt]=1337923293
。
【讨论】:
不幸的是,似乎不可能在一个电话中获得两个日期之间的发票(例如,1 个特定月份的发票) 有可能Stripe::Charge.all(limit: 100, 'created[lt]' => timestamps, 'created[gte]' => timestamps )
【参考方案2】:
如果您正在寻找使用 ruby client 的方法,这里是:
Stripe::Charge.all(limit: 100, 'created[lt]' => timestamps )
【讨论】:
【参考方案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)
【讨论】:
这就是我一直在寻找的东西,从很多天开始。为我工作。谢谢【参考方案4】:对于我们这些使用 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)
【讨论】:
以上是关于是否可以使用 Stripe API 查询日期时间范围?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 Stripe 与 Firebase 和 iOS 集成?
得到错误的结果:从 AngularJS 访问 api 并使用 NodeJS 从 firebase 查询结果时出现时区问题