2017-12-08 17 views
0

私はlaravelでWebhookを実装しようとしていました。LaravelでGocardless webhookを実装する

私はアクセストークンを作成し、webhookエンドポイントも作成しました。

私のウェブフックのエンドポイントは、同様である

と私のルートは

Route::get('/gocardless.php', 
'\App\Http\Controllers\[email protected]')->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に送信テストウェブフックにCLIK、同様です応答として、「405メソッドが見つかりません」と指定されます。

どうすれば解決できますか?

+0

あなたのルートはroutes/web.phpでなければならず、ルートに\ App \ Http \ Controllersを書く必要はありません。 –

答えて

0

いくつかの発言や修正

備考

は、なぜあなたは、その

修正

変更の必要はあなたのルートにある拡張子.phpが存在しない「醜い」などがないあなた経路(web.php内)

Route::get('gocardless', '[email protected]'); 

備考

私はまた、あなたのコントローラ名が、これは一般的ではありません

修正

がトップ

namespace App\Http\Controllers; // declare right namespace 

use Illuminate\Http\Request; // Hint which Request class to use below 

であなたのコントローラにこれらの行を追加することを忘れないでください、小文字で始まる見ます本体の場合:実際に自分自身を書き込んでjsonとしてデータを返す必要があります。

2

HTTP 405 errorあなたが見ているLaravel a pplicationは着信要求のmethodの処理方法を知らない。

GoCardless webhooks use the POST method JSON本体でリクエストを送信しますが、作成した経路はGETリクエスト(Route::get)を処理するためのものです。これを解決するには、Webフックを受信するエンドポイントへのPOSTリクエストに対してdefine a routeを指定する必要があります。

+0

私は(Route :: post)で変更しましたが、 "500内部サーバーエラー" – Reshma

+0

のような他のエラーが発生しました@Reshmaあなたのコードは処理していない例外を起こす可能性が高いです。その例外をキャッチして、実際のエラーの内容を調べる必要があります(おそらく、LaravelやGoCardlessには関係ないと思われます)。http://php.net/manual/en/language.exceptions.phpはPHPです例外処理のためのドキュメント。このトピックの出発点となるはずです。 – jpn

関連する問題