首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GoCardless web钩子检索公司名称

使用GoCardless web钩子检索公司名称
EN

Stack Overflow用户
提问于 2017-11-15 09:19:28
回答 1查看 214关注 0票数 2

我正在使用GoCardless (沙箱帐户)网页钩子为一个计费项目。我想恢复那些选择用GoCardless付款的客户。问题是,在我从GoCardless获得的JSON中,没有这样的信息。

我需要公司名称将授权号放入sql数据库中,我的所有客户都在这个数据库中。

是否有方法在创建委托时获取公司名称?,还是将授权号连接到公司名称?

这是我的代码:

代码语言:javascript
复制
<?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");
  }
?>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-17 07:36:41

GoCardless 网钩事件不包含任何敏感数据--它们提供资源if,以便在需要时可以从API中检索它们。

“任务创建”事件包含任务ID,API任务参考显示任务响应包含一个客户ID (客户资源是您查找其公司名称的地方)。

这意味着您需要通过API进行检索任务,然后是取回顾客

代码语言:javascript
复制
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;
}

这假设您已经将安装并初始化客户端库作为$client

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47303481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档