Laravel没有收到贝宝网络挂钩事件



你好,我是laravel的新员工,我构建了一个电子商务平台(细节并不重要(无论如何,我的问题是,我创建了一个可以从贝宝webhook捕捉所有事件的路径,但当我直接访问它时,它是有效的,但当我们尝试从贝宝webhook模拟器,或者即使是沙盒支付也没有通过我知道问题来自csrf验证,我尝试排除路由,但没有成功,还尝试创建一个新的RouteServiceProvider这是我在控制器中的代码,这样我就可以从请求中捕获任何内容

$headers = getallheaders();
file_put_contents("/home/username/public_html/test.txt", json_encode($headers));

这是我的路线

Route::domain(env("APP_DOMAIN"))->group(function () {
Route::get('/paypal/n', 'HomeController@notifications');
});

我使用域(env("APP_domain"((,因为每个人都可以添加自己的域,我希望这只在主域中工作。

RouteServiceProvider 中的代码

public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
$this->mapPaymentRoutes();
//
}
protected function mapPaymentRoutes()
{
Route::middleware('payment')
->namespace($this->namespace)
->group(base_path('routes/payment.php'));
}

当然,我确实在Kernel.php文件中定义了支付中间件,并评论了VerifyCsrfToken类

protected $middlewareGroups = [
'web' => [
AppHttpMiddlewareEncryptCookies::class,
IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
IlluminateSessionMiddlewareStartSession::class,
// IlluminateSessionMiddlewareAuthenticateSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class,
AppHttpMiddlewareVerifyCsrfToken::class,
IlluminateRoutingMiddlewareSubstituteBindings::class,
],
'payment' => [
AppHttpMiddlewareEncryptCookies::class,
IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
IlluminateSessionMiddlewareStartSession::class,
// IlluminateSessionMiddlewareAuthenticateSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class,
// AppHttpMiddlewareVerifyCsrfToken::class,
IlluminateRoutingMiddlewareSubstituteBindings::class,
],
'api' => [
'throttle:60,1',
IlluminateRoutingMiddlewareSubstituteBindings::class,
],
];

即使有这么多,像很多测试一样,我也无法让它发挥作用如果我向一个纯php文件发送请求,它就可以正常工作。你能帮我吗?我试着自己找到解决方案,但我花了大约15天的时间,没有任何运气我用拉拉威尔6。

如果其他人正在解决这个问题,我不得不在公共场合创建一个纯php文件,并向该文件url/file.php发送webhook请求和文件捕获数据,并将其发送到我在laravel中创建的命令中进行处理,这样与数据库有关的一切都在laraver中,file.php就像一个管道。我知道这不是最好的主意,但也不是最坏的主意感谢所有试图帮助我的人。

相关内容

  • 没有找到相关文章

最新更新