【发布时间】:2018-05-22 15:12:27
【问题描述】:
我试图在 laravel 中实现一个 webhook。
我还创建了访问令牌并创建了 webhook 端点。
我的 webhook 端点是 https://www.example.com/gocardless.php
我的路线是这样的,
Route::get('/gocardless.php',
'\App\Http\Controllers\gocardlessController@remote')->name('remote');
控制器代码,
class gocardlessController extends Controller
{
public function remote(Request $request)
{
$token ="token";
$raw_payload = file_get_contents('php://input');
$headers = getallheaders();
$provided_signature = $headers["Webhook-Signature"];
$calculated_signature = hash_hmac("sha256",$raw_payload,$token);
if ($provided_signature == $calculated_signature) {
$payload = json_decode($raw_payload, true);
}
}
}
但是当我在 gocardless 帐户中单击发送测试 webhook 时,他们得到“405 no method found”作为响应。
我该如何解决这个问题?
【问题讨论】:
-
你的路由必须在routes/web.php中,不需要在路由中写\App\Http\Controllers。
-
@Reshma 在你的 laravel 项目中是否完成了 gocardless 的实现?
-
@AlauddinAhmed 是的。
-
@Reshma 你能帮帮我吗?我在测试环境中的 webhook 中有错误。给我 419 身份验证超时错误。我正在使用 laravel 5.5
-
@AlauddinAhmed 当然。你能显示你的代码并告诉我确切的问题出在哪里
标签: php laravel webhooks gocardless