你好我是编码时的新手,但是我试图让自己参与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";
}
整个代码只显示那种,但不是那样做的。 我希望在订阅成功完成后获得整个客户的详细信息。
谢谢,希望有人可以帮助我。 抱歉我的英语不好。答案 0 :(得分:0)
完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系 support 子>
Braintree不会返回订阅webhook的完整客户对象。在Braintree API中,订阅与支付方法有关,而与客户无关,但是,您当然可以使用随webhook提供的订阅对象访问完整的客户对象。根据订阅情况,有几种不同的方式。
如果订阅具有关联的事务,则可以访问订阅对象中的transactions array,然后可以使用该customer details访问该事务对象中的payment method token。
$webhookNotification->subscription->transactions[0]->customerDetails
从订阅中提取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")]);