Можно ли запрашивать диапазоны даты и времени с помощью Stripe API?

Используя 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 

person Chris W.    schedule 24.05.2012    source источник


Ответы (4)


да. Из 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.

person anurag    schedule 25.05.2012
comment
к сожалению, в одном вызове невозможно получить счета-фактуры между двумя датами (например, счета-фактуры за 1 конкретный месяц) - person Alessio; 20.12.2016
comment
можно Stripe::Charge.all(limit: 100, 'created[lt]' => timestamps, 'created[gte]' => timestamps }) - person Deepesh Thapa; 13.10.2020

Если вы ищете, как это сделать с помощью клиента ruby, вот он:

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

По тем же линиям. Вы можете добиться того же самого с клиентом 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})
person Rob Carpenter    schedule 02.02.2016
comment
Это то, что я ищу, от многих дней. Работает на меня. Спасибо - person Mobin Al Hassan; 15.03.2021

Для тех из нас, кто использует 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)
person Niclas    schedule 04.11.2020