Не могу сопоставить локальный токен с пройденным токеном GoCardless

Я использую laravel 5.3 с API GoCardless и пытаюсь создать конечные точки, чтобы мое приложение могло соответствующим образом обрабатывать события.

Я читаю документацию GoCardless и там говорится:

$token = getenv("GC_WEBHOOK_SECRET");

$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) {

} else {

};

Я преобразовал вышеупомянутое в дружественный контроллер Laravel.

public function hook(Request $request)
{

$token = env("GC_WEBHOOK_SECRET");

$raw_payload = $request;

$provided_signature = $request->header('Webhook-Signature');
$calculated_signature = hash_hmac("sha256", $raw_payload, $token);

if ($provided_signature == $calculated_signature) {
Log::info('It was a match!');
} else {
Log::info('Something went wrong!');
};}

но я не могу сделать так, чтобы $ обеспеченная_сигнала соответствовала $ рассчитанной_сигнатуре, у меня такое ощущение, что это связано с тем, как я хэширую токен из моего файла env.

0

Решение

Ребята решили, все что мне нужно было сделать, это заменить

$raw_payload = $request;

с

$raw_payload = $request->getContent();
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector