2017-03-01 11 views
0

初めてWebhooksを使ってテストしています。私はWebHook(GoCardless.comを使用して設定しますが、これは問題ではありません)を設定します。Webhook経由でデータを取得するには? (GoCardless)

私はサンドボックスでだと私はそこにウェブフックを設定している:

{ 
    "id": "WE000012RYRQ9E", 
    "created_at": "2017-03-01T18:03:34.252Z", 
    "enabled": true, 
    "secret": "qpILcgnnAWznkuJcajXYvMNsQcrkKwDzL6KHMq5z", 
    "name": "TestHook", 
    "url": "https://example.com/webhook.php", 
    "client_cert_details": null, 
    "links": {} 
} 

その後、私はこのコードを持つ私のwebhook.phpにウェブフックを送信しようとしている:

<?php 
header('Content-Type: application/json'); 

$result = $_REQUEST['events']; 
$obj = json_decode($result, true); 

print_r($_GET); 
print_r($_POST); 
print_r($_REQUEST); 
print_r($result); 
print_r($obj); 

あなたはここでの結果を見ることができます:

enter image description here

だから、私は、私は$_REQUEST['events']のようなデータを表示すると仮定していますが、下部には空の配列しか戻っていないことがわかります。

これは秘密鍵(qpILcgnnAWznkuJcajXYvMNsQcrkKwDzL6KHMq5z)に関するものですか?

これを設定する方法がわかりません。

答えて

2

をウェブフックデータは、要求の本体にJSONとしてあなたのサーバーに送信されます。 PHPでは、file_get_contents('php://input')でアクセスする必要があります。

あなたが身体を持ったら、あなたは配列にそれをデコードし、次にあなたが欲しいしかし、データを操作することができます:ウェブフックの取り扱いに関する完全なガイドについては

$raw_payload = file_get_contents('php://input'); 
$payload = json_decode($raw_payload, true); 

// Each webhook may contain multiple events to handle, batched together 
foreach ($payload["events"] as $event) { 
    // Do something with the event here 
    print("Processing event " . $event["id"] . "\n"); 
} 

、GoCardlessのgetting started guideを参照してください。また、秘密鍵を使ってWebHookが本当にGoCardlessから来て、スプーフィングされていないことを確認する方法を示します。

あなたはこのポストにあなたのウェブフックの秘密を含めました。あなたはそれを今リセットしたいと思うでしょう。さもなければ、誰かがあなたにGoCardlessではない偽のウェブフックを送るかもしれません。 sandbox GoCardless dashboardの左側にある[開発者]をクリックし、エンドポイントをクリックしてから[編集]をクリックしてください。

+0

ありがとうございます。私はこの質問をしたときにいくつかのドキュメントを見落としてしまったことを覚えています。私はこのポストで実際のWebhookの秘密を使用しませんでしたが、知っておきたいことです。 – AlexioVay

0

多くの検索を行った後の例が見つかりました。たぶん、これは他の誰かに役立ちます。ほとんどのコードは廃止しているように見えることに注意してくださいしかし、あなたはuptodate GoCardless API研究してきたときにことを知っています:

https://github.com/gocardless/gocardless-legacy-php/blob/master/examples/webhooks.php

+0

このリンクは、従来のPHPドキュメントを指しています。従来のAPIまたは現在の「プロ」APIを使用していますか? –

関連する問題