我已经在这个问题上搜索了答案,但我似乎无法找到任何解决方案。
我正在尝试从我的应用程序正在使用的api服务获得响应。
在每次成功的事务中,api都会将POST通知推送到我提供的任何URL以及事务的详细信息。我发现只有请求才能通过。但是,如果我通过公共文件夹路由请求,它似乎工作正常。
是否有任何方法可以使用laravel中的POST路由控制器来获取file_get_contents(' php:// input') ?
以下是我的代码示例:
ApiController.php
((?!gif).)
路由/ web.php
public function recieve_payment(Request $request){
$res = file_get_contents('php://input');
if (!empty($res)) {
// insert values of $res to database
}
}
答案 0 :(得分:2)
我想从CSRF保护中排除URI
protected $except = [
'stripe/*',
];
这段小代码字面上节省了我几个小时。
答案 1 :(得分:1)
将您的路线放置在routes / api.php中,而不是routes / web.php中。 route / api.php已禁用CSRF。
routes / api.php
Route::post('/recieve', 'ApiController@recieve_payment');
您的Webhook URL现在将是:
BASE_URL / api /接收
此外,您无需使用:
$res = file_get_contents('php://input');
您可以使用:
$res = $request->all();
答案 2 :(得分:1)
使用$request->getContent()