Как получить общее количество клиентов (без «лимита») с помощью Stripe API

Я работаю с PHP Stripe API, чтобы получить список всех клиентов для определенного аккаунта Stripe. Мне просто нужен адрес электронной почты объекта клиента.

Следующая функция работает хорошо, но возвращает только 10 клиентов.

  function getListOfCustomers($stripe){
\Stripe\Stripe::setApiKey($stripe['secret_key']);
$list_of_customers = \Stripe\Customer::all(array());
return $list_of_customers['data'];

}

После прочтения Вот об API он говорит мне, что параметр «limit» (т.е. \Stripe\Customer::all(array("limit" => 3)); ) не является обязательным, и «ограничение по умолчанию составляет 10».
Поэтому я думаю, что именно поэтому он возвращает только 10 клиентов.

Я хотел бы вернуть неограниченное количество клиентов.
Мне было интересно, кто-нибудь знает точно, как это сделать?

Я также прочитал следующее на та же страница:

При желании вы можете запросить, чтобы в ответ входило общее количество всех клиентов, соответствующих вашим фильтрам. Для этого укажите
включите [] = total_count в ваш запрос.

Однако это не говорит мне точно, как «включить это в мой запрос».
Я попробовал следующее, однако я получаю синтаксические ошибки.

$list_of_customers = \Stripe\Customer::all(array(), include[]=total_count);

и я тоже попробовал:

$list_of_customers = \Stripe\Customer::all(array(include[]=total_count));

Спасибо за помощь.

2

Решение

Если вы хотите получить общее количество клиентов, то total_count это лучшее решение. Ваш код будет выглядеть так:

$firstCustomerPage = \Stripe\Customer::all([
"limit" => 1,
"include[]" => "total_count"]);
$nbCustomers = $firstCustomerPage->total_count;

Это не вернет всех клиентов, хотя. Он просто возвращает первую страницу, здесь ограниченную одним элементом, вместе с общим количеством. Вы никогда не можете получить более 100 объектов одновременно через API Stripe.

Если вы хотите перебрать всех клиентов, чтобы найти одного из них, лучшим решением будет использование автоматической разбивки на страницы. Ваш код будет выглядеть так:

$customers = \Stripe\Customer::all(array("limit" => 100));
foreach ($customers->autoPagingIterator() as $customer){
echo "Current customer: $customer";
}

Он не будет хранить всех клиентов одновременно в $ покупателях, только страницу. Но когда вы достигнете последней на этой странице, итератор автоматически выберет следующую страницу для вас.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector