Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.04.2018 14:20:19

Получение Post запроса с другого сайта

Laravel Framework v5.5.20
PHP Version 7.1.6

Добрый день.
Возникла потребность подключить API стороннего сайта.
Суть следующая, я отправляю на их сайт Post запрос с помощью curl

		$data =array ('token'=>$token, 'provider'=>'$provider');
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, 'адрес сайта'); //урл сайта к которому обращаемся
		curl_setopt($ch, CURLOPT_HTTPHEADER, array(
			'X-Private-Api-Token: токен выданный при регистрации'
		));
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data));
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$res=curl_exec($ch); // выполняем запрос curl
		$codeb = curl_getinfo($ch, CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
		curl_close($ch);

Данные они получают корректно. После этого они мне отправляют json строку с помощью Post запроса.
Вот теперь вопрос как его отловить. Пробовал следующий вариант

Route

Route::post('/webhook/{id}','IndexController@webhook')->name('webhook');  //адрес, на который сторонний сайт отсылает Post запрос 

Controller

//для отладки хочу записать полученную строку в файл
   public function webhook(Request $request){
	   $fp = fopen('search.json', 'w');
	   fwrite($fp, json_encode($request->all(), JSON_UNESCAPED_UNICODE));
	   fclose($fp);
   }

Но ничего не записывается. Помогите, пож-та.

Не в сети

#2 12.04.2018 16:06:37

Re: Получение Post запроса с другого сайта

Файл точно не создается? Должна создаваться в папке public, в какой папке проверяете?

Не в сети

#3 12.04.2018 18:20:16

Re: Получение Post запроса с другого сайта

В public проверяю

Не в сети

#4 12.04.2018 19:19:23

Re: Получение Post запроса с другого сайта

Возможно сервер посылает запрос на другой url или отправляют не POST.

Изменено novichok (12.04.2018 19:27:03)

Не в сети

#5 13.04.2018 06:58:06

Re: Получение Post запроса с другого сайта

почему бы в function webhook(Request $request) не написать dd($request);
и посмотреть есть ли данные или проблема в записи файла?

Не в сети

#6 13.04.2018 11:05:54

Re: Получение Post запроса с другого сайта

Пробовал, не помогло.
Дело в том, что запрос я делаю с одного url, а ответ получаю на другой и редиректа нет. Следовательно, ответ приходит "в фоне" и этот способ не пройдёт. Функция записи в файл обкатана на других проектах. Предполагаю, что дело в токене, который формирует Laravel. Сегодня попробую его отключить для этого маршрута и попробовать снова.

Не в сети

#7 13.04.2018 11:46:54

Re: Получение Post запроса с другого сайта

По идее ответ надо ловить перед curl_close. Вот тут у тебя что получается? $res=curl_exec($ch)
а вообще посмотри еще guzzle - http client

Не в сети

Подвал раздела