Braintree Webhook уведомление об успехе в базу данных - PullRequest
0 голосов
/ 24 апреля 2018

Здравствуйте, я новичок, когда дело доходит до кодирования, но я пытаюсь подключить себя к Braintree / php SDK.

Теперь у меня есть активный URL-адрес Braintree Webhook, но я не знаю, как получитьАтрибуты / параметры подписки braintree, когда подписка успешна.

Другая проблема, я реализовал некоторые коды, которые мне дает braintree, но все же я не знаю, работает ли это или нет.

Я просто хочучтобы сохранить информацию о клиенте в моей базе данных, когда подписка будет успешно завершена.

Вот мой код веб-крюка.

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 голосов
/ 15 мая 2018

Полное раскрытие: я работаю в Braintree. Если у вас есть какие-либо дополнительные вопросы, не стесняйтесь обращаться поддержка .

Braintree не возвращает полный объект клиента для подписки. В API Braintree подписки привязаны к способам оплаты, а не к клиентам, однако вы, безусловно, можете получить доступ к полному объекту клиента с помощью объекта подписки, поставляемого с webhook. В зависимости от подписки, существует несколько способов.

  1. Если подписка имеет связанные транзакции, вы можете получить доступ к массиву транзакций в объекте подписки, который затем можно использовать для доступа к сведениям о клиенте внутри этого объекта транзакции. .

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

  2. Извлеките из подписки строку токена метода оплаты и выполните вызов API поиска клиента , который вернет полный объект клиента.

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