如何从Braintree交易结果中获取Customer ID?已能获取交易ID但理解不足
获取Braintree交易结果中的Customer ID
你已经找对路子啦!从Braintree交易结果里提取Customer ID的核心逻辑,其实你在代码里已经写对了——通过$result->transaction->customer->id就能拿到关联的客户ID,我再给你拆解下这个结构,帮你彻底搞明白:
- 当调用
$gateway->transaction()->sale($sale)完成交易后,只要$result->success为true,就说明交易成功 $result->transaction是包含所有交易细节的完整对象,里面的customer属性就是该交易绑定的客户对象- 这个客户对象的
id字段,就是你需要的Braintree Customer ID
你的代码示例本身是正确的,不过我建议加一点容错处理,避免遇到无关联客户的交易场景(比如一次性匿名交易)导致报错:
$result = $gateway->transaction()->sale($sale); if ($result->success){ $btree_transacton_id = $result->transaction->id; // 先判断customer对象及id是否存在,避免报错 if (isset($result->transaction->customer) && !empty($result->transaction->customer->id)) { $btree_cust_id = $result->transaction->customer->id; echo "Braintree Customer ID : ".$btree_cust_id." Transaction ID: ".$btree_transacton_id; } else { echo "该交易未关联客户,Transaction ID: ".$btree_transacton_id; } } else { // 这里可以补充交易失败的处理逻辑 echo "交易失败: " . $result->message; }
额外提一句:如果是用已存在的客户ID发起交易,或者创建新客户后立即完成的交易,customer字段都会被正常填充;但如果是未绑定客户的匿名交易,这个字段会为空,所以加个判断能让代码更健壮。
内容的提问来源于stack exchange,提问作者Luey
相关产品推荐
相关产品推荐

