在Braintree中获取客户的所有信用卡

时间:2015-12-05 18:11:56

标签: php braintree

$result = Braintree_Customer::find($id); 

可以通过提供附加属性从客户获取所有数据。但是,如果我想获取像所有creditCards类型一样的批量数据,那是不可能的,因为我无法使用foreach或for循环遍历creditCards属性。此属性是否包含我可以使用的长度或大小值?

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

我通过简单地检查对象的最后一个属性为空来找到了一种可能的方法。

public function getCustomerPaymentMethods($id)
{
    try {
        $i = 0;
        $result = Braintree_Customer::find($id);
        while($result->creditCards[$i]->token !== null) {
            $card[$i] = new stdClass();
            $card[$i]->token = $result->creditCards[$i]->token;
            $card[$i]->type = $result->creditCards[$i]->cardType;
            $card[$i]->default = $result->creditCards[$i]->default;
            $card[$i]->expired = $result->creditCards[$i]->expired;
            $card[$i]->last4 = $result->creditCards[$i]->last4;
            $i++;
        }
        return $card;
    } catch(Braintree_Exception_NotFound $e) {
        return false;
    }
}