Я внедряю gocardless api на свой сайт. Я застрял в вебхуке. Когда я отправляю веб-хук из тестовой среды песочницы на свой веб-сайт, он показывает ответ 200, но после этого код не выполняется. а также я ничего не вижу в теле ответа, он показывает ноль.
Я использую для этого laravel 5.7. Вот мой код
route.php Route::post('/webhook', 'HomeController@webhook');
HomeController.php
public function webhook()
{
$webhook_endpoint_secret = env("GOCARDLESS_WEBHOOK_ENDPOINT_SECRET");
$request_body = file_get_contents('php://input');
$headers = getallheaders();
$signature_header = $headers["Webhook-Signature"];
try {
$events = Webhook::parse($request_body, $signature_header, $webhook_endpoint_secret);
foreach ($events as $event) {
print("Processing event " . $event->id . "\n");
switch ($event->resource_type) {
case "mandates":
$this->process_mandate_event($event);
break;
default:
print("Don't know how to process an event with resource_type " . $event->resource_type . "\n");
break;
}
}
header("HTTP/1.1 204 OK");
} catch(InvalidSignatureException $e) {
header("HTTP/1.1 498 Invalid Token");
}
}
public function process_mandate_event($event)
{
switch ($event->action) {
case "cancelled":
print("Mandate " . $event->links["mandate"] . " has been cancelled!\n");
break;
default:
print("Don't know how to process a mandate " . $event->action . " event\n");
break;
}
}
Я пытался выполнить какой-то запрос к базе данных, все равно ничего не работает. Может ли кто-нибудь указать мне, что и где я делаю неправильно?