braintree webhook成功通知数据库

时间:2018-04-24 16:24:13

标签: php braintree

你好我是编码时的新手,但是我试图让自己参与braintree / php sdk。

现在,我有一个活跃的braintree webhook网址但我不知道如何在订阅成功时获取braintree订阅属性/参数。

其他问题,我已经实现了braintree给我的一些代码,但是如果这工作与否,我仍然不知道。

我很简单,希望在订阅成功完成后将客户详细信息保存到我的数据库中。

这是我的webhook代码。

public static function handleWebhook(){

  Braintree_Configuration::environment('sandbox');
  Braintree_Configuration::merchantId('my_id');
  Braintree_Configuration::publicKey('my_key');
  Braintree_Configuration::privateKey('my_private_key');

  if((Router::$aPost["bt_signature"]) && isset(Router::$aPost["bt_payload"])) {
    $webhookNotification = Braintree_WebhookNotification::parse(
      Router::$aPost["bt_signature"], 
      Router::$aPost["bt_payload"]
    );

    $message = "[Webhook Received " 
               . $webhookNotification->timestamp->format('Y-m-d H:i:s') . "] "
               . "Kind: " . $webhookNotification->kind . " | "
               . "Subscription: " . $webhookNotification->subscription->id . "\n";
  }

整个代码只显示那种,但不是那样做的。 我希望在订阅成功完成后获得整个客户的详细信息。

谢谢,希望有人可以帮助我。 抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系 support

Braintree不会返回订阅webhook的完整客户对象。在Braintree API中,订阅与支付方法有关,而与客户无关,但是,您当然可以使用随webhook提供的订阅对象访问完整的客户对象。根据订阅情况,有几种不同的方式。

  1. 如果订阅具有关联的事务,则可以访问订阅对象中的transactions array,然后可以使用该customer details访问该事务对象中的payment method token

    $webhookNotification->subscription->transactions[0]->customerDetails

  2. 从订阅中提取customer search api call字符串并运行article from Google,这将返回完整的客户对象。

    $collection = $gateway->customer()->search([
        Braintree_CustomerSearch::cardholderName()->is("John Doe"),
        Braintree_CustomerSearch::paymentMethodToken()->is("the_payment_method_token")]);