Я использую API, который отправляет мне обратный вызов на URL-адрес, этот маршрут использует метод POST, я просто хочу увидеть данные, которые обратный вызов отправляет мне через этот URL-адрес.
Я видел данные и ответ API, и мне показалось, что статус обратного вызова успешен. Итак, я просто хочу посмотреть, что внутри.
Как я могу это сделать?
Это мой маршрут / web.php
Route::post('/callback', [
'uses' => 'PackController@callback',
'as' => 'payment.callback'
]);
И это функция в моем контроллере
public function callback(Request $request) {
dd(json_decode($request->getContent(), true));
return view('payment.callback');
}
Я тоже получаю эту ошибку, я думаю, что это из-за метода маршрута.
Это инструкции для получения обратного вызоваhttps://developer.coingate.com/docs/payment-callback
@FelippeDuarte laravel.com/docs/5.7/helpers#method-dump
Я пробовал это, но пока не работает.






Пытаться:
public function callback(Request $request) {
var_dump($request->all());
die(1);
return view('payment.callback');
}
Предлагаю вам использовать отладчик (XDebug). Вы можете добавить точку останова и просмотреть все переменные, глобальные переменные, константы и другие детали.
Как я могу использовать отладчик?
Ваша идея бросает мне пустой массив
Какую IDE вы используете? Вам следует установить расширение xdebug PHP и настроить свою IDE. Вы можете прочитать это руководство: Deliciousbrains.com/xdebug-advanced-php-debugging
Если вы предпочитаете смотреть видеоуроки: youtube.com/watch?v=iSSjeelN5NU
Ох, понимаю, но в этом случае. Я просто хочу посмотреть, какие данные находятся внутри обратного вызова, потому что я пробую его на веб-сервере.
Спасибо, но я не тестирую его на своем локальном хосте.
Данные POST? Вы уверены, что есть данные? $request->all() должен возвращать входные данные, если эти данные существуют и не отфильтрованы.
Я просто следую инструкциям API. В нем говорится, что он собирается отправить обратный вызов на этот URL-адрес с помощью метода POST, похоже, что ответ обратного вызова был успешным и показывает данные. Я просто хочу запросить это на своем веб-сайте.
Похоже, вы делаете запрос к какому-то API, и этот API позже отправляет запрос обратно к вашему коду. Если это все на стороне сервера, то dump() не собирается давать ты никакой информации, он просто сбрасывает данные в ответ удаленной службе, которая отправляет POST на ваш сервер.
Вместо dump()ing попробуйте записать его:
public function callback(Request $request) {
Log::info("Received callback", $request->input());
die();
}
Затем взгляните на файл журнала.
Я думаю, что это не сработает, потому что я делаю это не на своем локальном хосте, я тестирую его на веб-сервере -
Что ж, вам нужно поместить данные куда-нибудь, чтобы вы могли их получить. Если вы не можете читать /tmp на сервере (виртуальный хостинг?), Вы можете вставить его в другое место. Либо создайте каталог с разрешениями, которые позволяют PHP писать в него, либо поместите его в корзину S3, либо отправьте его в другое место, либо вставьте в базу данных ... это действительно зависит от вас. Важно понимать, что ваш PHP-код не может отправить ответ вашему браузеру, если запрос не поступает из вашего браузера.
Итак, как лучше всего получить обратный вызов с помощью Laravel? Потому что я просто пытаюсь получить данные, которые поступают из API.
Я обновил свой ответ, чтобы использовать средство Laravel Log. Когда удаленный сервер отправляет POST на ваш сервер, вы должны получить запись в журнале laravel, который находится в storage/log/laravel.log или чем-то подобном.
Я пробовал, но ничего не отображается в файле журнала.
Тогда есть две возможности: ваша инфраструктура ведения журналов сломана или удаленный API фактически не отправляет POST на URL-адрес обратного вызова. Записывается ли что-нибудь в журнал, если вы сами отправляете POST в обратный вызов (используя curl или почтальон или что-то еще?)
Я думаю, что POSTing правильно, что мне интересно, правильно ли мы улавливаем данные обратного вызова?
Позвольте нам продолжить обсуждение в чате.
Что это за функция
dump()? Вы имели в видуvar_dump()илиdd()?