Здравствуйте. Использую CloudPayments как платежную систему. Продаю подписки на платный telegram канал.
Сейчас моя задача - найти подписки передав массив с данными которые содержат telegram user id.
Вот метод -
https://developers.cloudpayments.ru/#poisk-podpisok
Вот код:
function followers () {
$followers = DB::table('followers')->where('active', 1)->get();
$url = 'https://api.cloudpayments.ru/subscriptions/find';
// Search follow api.cloudpayments.ru
foreach ($followers as $follower) {
$headers = array(
'Content-Type:application/json'
);
$post = array(
'accountId' => '572275691'
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "KEY");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post));
curl_setopt($curl, CURLOPT_URL, $url);
$result = curl_exec($curl);
echo '<pre>';
print_r(json_decode($result, true));
}
}
Вопрос. Я не хочу делать 100500 запросов через цикл. Я детально изучил их API, и не понимаю как передать просто массив с айдишниками и в ответ получить массив с данными о подписках. Может я не правильно делаю $post? Я делал так:
$post = array(
array('accountId' => '572275691'),
array('accountId' => '572275692'),
);
В ответ получаю что подписка не найдена.
Вдобавок ко всему у них написано в API:
API ограничивает максимальное количество одновременных запросов для тестовых терминалов до 5, для боевых до 30. Если количество обрабатываемых в данный момент запросов к сайту больше ограничения - API будет возвращать ответ с HTTP кодом 429
Помогите решить.