Получить данные почтового метода Laravel

Я использую 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');
}

Я тоже получаю эту ошибку, я думаю, что это из-за метода маршрута.Получить данные почтового метода Laravel

Это инструкции для получения обратного вызоваhttps://developer.coingate.com/docs/payment-callback

Что это за функция dump()? Вы имели в виду var_dump() или dd()?

Felippe Duarte 21.12.2018 20:59

@FelippeDuarte laravel.com/docs/5.7/helpers#method-dump

hdifen 21.12.2018 21:01

Я пробовал это, но пока не работает.

danhergir 21.12.2018 21:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
1 787
2

Ответы 2

Пытаться:

public function callback(Request $request) {
    var_dump($request->all());
    die(1);
    return view('payment.callback');
}

Предлагаю вам использовать отладчик (XDebug). Вы можете добавить точку останова и просмотреть все переменные, глобальные переменные, константы и другие детали.

Как я могу использовать отладчик?

danhergir 21.12.2018 21:11

Ваша идея бросает мне пустой массив

danhergir 21.12.2018 21:15

Какую IDE вы используете? Вам следует установить расширение xdebug PHP и настроить свою IDE. Вы можете прочитать это руководство: Deliciousbrains.com/xdebug-advanced-php-debugging

Nikita K 21.12.2018 21:31

Если вы предпочитаете смотреть видеоуроки: youtube.com/watch?v=iSSjeelN5NU

Nikita K 21.12.2018 21:33

Ох, понимаю, но в этом случае. Я просто хочу посмотреть, какие данные находятся внутри обратного вызова, потому что я пробую его на веб-сервере.

danhergir 21.12.2018 21:33

Спасибо, но я не тестирую его на своем локальном хосте.

danhergir 21.12.2018 21:34

Данные POST? Вы уверены, что есть данные? $request->all() должен возвращать входные данные, если эти данные существуют и не отфильтрованы.

Nikita K 21.12.2018 21:37

Я просто следую инструкциям API. В нем говорится, что он собирается отправить обратный вызов на этот URL-адрес с помощью метода POST, похоже, что ответ обратного вызова был успешным и показывает данные. Я просто хочу запросить это на своем веб-сайте.

danhergir 21.12.2018 21:39

Похоже, вы делаете запрос к какому-то API, и этот API позже отправляет запрос обратно к вашему коду. Если это все на стороне сервера, то dump() не собирается давать ты никакой информации, он просто сбрасывает данные в ответ удаленной службе, которая отправляет POST на ваш сервер.

Вместо dump()ing попробуйте записать его:

public function callback(Request $request) {
     Log::info("Received callback", $request->input());
     die();
}

Затем взгляните на файл журнала.

Я думаю, что это не сработает, потому что я делаю это не на своем локальном хосте, я тестирую его на веб-сервере -

danhergir 21.12.2018 21:20

Что ж, вам нужно поместить данные куда-нибудь, чтобы вы могли их получить. Если вы не можете читать /tmp на сервере (виртуальный хостинг?), Вы можете вставить его в другое место. Либо создайте каталог с разрешениями, которые позволяют PHP писать в него, либо поместите его в корзину S3, либо отправьте его в другое место, либо вставьте в базу данных ... это действительно зависит от вас. Важно понимать, что ваш PHP-код не может отправить ответ вашему браузеру, если запрос не поступает из вашего браузера.

timdev 21.12.2018 21:25

Итак, как лучше всего получить обратный вызов с помощью Laravel? Потому что я просто пытаюсь получить данные, которые поступают из API.

danhergir 21.12.2018 21:27

Я обновил свой ответ, чтобы использовать средство Laravel Log. Когда удаленный сервер отправляет POST на ваш сервер, вы должны получить запись в журнале laravel, который находится в storage/log/laravel.log или чем-то подобном.

timdev 21.12.2018 21:32

Я пробовал, но ничего не отображается в файле журнала.

danhergir 21.12.2018 21:43

Тогда есть две возможности: ваша инфраструктура ведения журналов сломана или удаленный API фактически не отправляет POST на URL-адрес обратного вызова. Записывается ли что-нибудь в журнал, если вы сами отправляете POST в обратный вызов (используя curl или почтальон или что-то еще?)

timdev 21.12.2018 22:43

Я думаю, что POSTing правильно, что мне интересно, правильно ли мы улавливаем данные обратного вызова?

danhergir 21.12.2018 22:55

Позвольте нам продолжить обсуждение в чате.

timdev 21.12.2018 23:29

Другие вопросы по теме