Создание сводного отчета о чередовании

Недавно я переключил обработку платежей на Stripe. Теперь мне нужно создать отчет для нашего финансового отдела, который показывает сводку транзакций в указанном диапазоне дат. Я начал создавать простую веб-страницу PHP (и используя PHP-библиотеку Stripe), которая даст следующие сводки:

  • Количество транзакций
  • Сумма сделки
  • Количество возвратов
  • Сумма возмещения
  • Сборы
  • Сеть

У меня возникли проблемы с выяснением того, как правильно запрашивать платежи с помощью Stripe для целей отчетности.

Я знаю, что могу получить платежи с помощью:

$charges = Stripe_Charge::all();

И из возвращенного набора начислений я могу вычислить сводную информацию, которая мне нужна в отчете. Однако это вернет мне максимум 100 списаний, и я не знаю, как вернуть списания в указанный диапазон дат.

Я надеюсь, что более опытные разработчики Stripe смогут указать мне правильный метод построения нужного мне отчета.

Как я могу вернуть все платежи за указанный диапазон дат?

Есть ли лучший способ получить эту сводную информацию из Stripe?


person Stephen Watkins    schedule 01.11.2012    source источник


Ответы (5)


Вы можете использовать вебхуки, чтобы получать уведомления о событиях charge.succeeded или charge.refunded и сохранять соответствующую информацию в базе данных, которую вы контроль. Это даст вам гибкость для составления необходимой отчетности. Вы можете загрузить платежи, которые уже произошли, в формате CSV с панели управления Stripe.

person dwhalen    schedule 05.11.2012
comment
Ага, это вариант. Я надеялся, что мне не придется управлять этими данными на моем собственном сервере/базе данных. - person Stephen Watkins; 07.11.2012

Вы можете разбивать платежи на страницы, используя параметры количества и смещения (задокументировано на https://stripe.com/docs/api?lang=php#list_charges). Я бы предложил использовать их для обработки 100 зарядов за раз. Затем вы можете перестать повторять свои платежи, как только вы получите платеж за пределами вашего диапазона дат.

person Saikat Chakrabarti    schedule 03.11.2012
comment
Я уже рассматривал это решение, но оно может быть ужасно неэффективным. Предположим, я ищу 2 дня зарядов, которые произошли 6 месяцев назад. Не исключено, что я сделаю тысячи запросов к серверам Stripe, прежде чем мне будут отправлены правильные платежи. Я ценю эту мысль, но она недостаточно надежна, чтобы эффективно справиться с моей ситуацией. - person Stephen Watkins; 05.11.2012
comment
@StephenWatkins вы можете использовать созданный параметр с gt / lt, как описано здесь в дочерних аргументах для созданного - stripe.com/docs/api?lang=php#list_charges - person bryceadams; 29.04.2015

Я получил подтверждение от сотрудника Stripe, что на самом деле есть только два варианта, описанные в ответах от @dwhalen и @Saikat Chakrabarti.

Цитата сотрудника Stripe на тот же вопрос, который я задал в Stripe:

Помимо вариантов, которые вы описали (извлечение всех расходов или отслеживание в вашей базе данных по мере поступления платежей), нет никакого альтернативного способа получения нужной вам статистики.

person Community    schedule 12.11.2012

Поймите, что это старо, но .. теперь это возможно, пример php:

$charges=Stripe_Charge::all(array("created" => array("gt" => $unix_time),"limit" => 100));
person Amos    schedule 11.12.2014
comment
Вы случайно не знаете Python-эквивалент этого вызова? - person MeLight; 06.01.2015

Вы можете использовать смещение, например

$return = Stripe_Charge::all(array("count" => 100, 'offset' => 0)); // set count
$return = Stripe_Charge::all(array("count" => 100, 'offset' => 100));   // set count
$return = Stripe_Charge::all(array("count" => 100, 'offset' => 200));   // set count
person PHP Ferrari    schedule 26.03.2013