【问题标题】:Get data of a post method Laravel获取 post 方法 Laravel 的数据
【发布时间】:2019-05-22 05:52:42
【问题描述】:

我正在使用一个 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

【问题讨论】:

标签: php laravel api post callback


【解决方案1】:

试试:

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
  • 哦,我明白了,但在这种情况下。我只是想看看回调中的数据是什么,因为我正在网络服务器中尝试它。
【解决方案2】:

听起来您正在向某个 API 发出请求,而该 API 稍后又向您的代码发出请求。如果这都是服务器端的,那么dump() 不会向 提供任何信息,它只会将数据转储到远程服务的响应中,该远程服务正在向您的服务器发送 POST。

尝试记录它而不是dump()ing:

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

那就看看日志文件吧。

【讨论】:

  • 我认为这行不通,因为我没有在本地主机中执行此操作,而是在 Web 服务器上对其进行测试-
  • 嗯,你需要把数据放在你能得到它的地方。如果您无法在服务器上读取/tmp(共享主机?),您可以将其粘贴到其他地方。要么创建一个具有允许 PHP 写入权限的目录,要么将其粘贴在 S3 存储桶中,要么将其发布到其他地方,或者将其插入数据库......这真的取决于你。要理解的关键是当请求不是来自您的浏览器时,您的 PHP 代码无法向您的浏览器发送响应。
  • 那么,使用 Laravel 获得回调的最佳方式是什么?因为我只是想获取来自 API 的数据
  • 我已经更新了我的答案以使用 Laravel 的 Log 设施。当远程服务器 POST 到您的服务器时,您应该在 laravel 的日志中获得一个条目,IIRC 在 storage/log/laravel.log 或其他东西中。
  • 我试过了,但它没有在日志文件中显示任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
相关资源
最近更新 更多