2017-11-15 9 views
1

私は請求プロジェクトのためにGoCardless(sandbox account)webhookを使用しています。私は、GoCardlessで支払いを選択した顧客を回収したいと考えています。問題はGoCardlessから取得したJSONにそのような情報がないことです。GoCardless webhookで会社名を取得

すべてのクライアントが存在するsqlデータベースに委任番号を入れるには、会社名が必要です。

委任の作成時に会社名を取得する方法はありますか?または会社名に委任番号を接続しますか?機密データが含まれていない

<?php 
 
putenv('GC_WEBHOOK_SECRET=my_secret...'); 
 
$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) { 
 
    $payload = json_decode($raw_payload, true); 
 
    foreach ($payload["events"] as $event) { 
 
     if ($event["resource_type"]=="mandates" && $event["action"]=="created"){ 
 
       $mandates=$event["links"]; 
 
       $mandate=$mandates["mandate"]; 
 
       try 
 
       { 
 
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; 
 
        $bdd = new PDO('sqlsrv...', $pdo_options); 
 
        $reqi="INSERT INTO goCardLess (client) VALUES ('".$mandate."')"; 
 
        $req = $bdd->query($reqi); 
 
        $req->closeCursor(); 
 
       } 
 
       catch (Exception $e) 
 
       { 
 
        die('Erreur : ' . $e->getMessage()); 
 
       } 
 
       header("HTTP/1.1 200 OK"); 
 
       } 
 
       } 
 
      } 
 
else { 
 
    header("HTTP/1.1 498 Invalid Token test"); 
 
    } 
 
?>

+0

試した例を挙げて、必要な情報をどのように見えるかを指摘してください。 –

+0

はい編集しました。役立つと思います –

答えて

0

GoCardless webhook events - 必要な場合は、APIからそれらを取得することができるように、彼らはリソースIDを提供します。

は、ここに私のコードです。

これは、あなたがする必要があることを意味し、「作成した任務」イベントが任務のIDが含まれており、API reference for mandatesは任務の応答が顧客IDが含まれていることを示している(顧客のリソースは、あなたが自分の会社名を見つけるところである。)

APIを介してretrieve the mandate、その後、retrieve the customer

if ($event["resource_type"]=="mandates" && $event["action"]=="created") { 
    $mandate_id = $event["links"]["mandate"]; 
    $mandate = $client->mandates()->get($mandate_id); 

    $customer_id = $mandate->links->customer; 
    $customer = $client->customers()->get($customer_id); 

    $company_name = $customer->company_name; 
} 

これは、あなたがすでにinstalled and initialised the client library$clientようにしたことを前提としています。

関連する問題