2017-01-19 115 views
0

我正在使用GoCardless API使用laravel 5.3,並試圖構建端點,以便我的應用程序可以相應地處理事件。不能匹配本地令牌以傳遞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!'); 
     }; 


    } 

,但我不能得到$ provided_signature匹配$ calculated_signature,我有一種感覺,這件事情跟我散列從我的ENV文件令牌的方式。

回答

0

解決這傢伙,所有我需要做的是更換

$raw_payload = $request; 

$raw_payload = $request->getContent();