2016-09-24 1 views
1

Я пытаюсь настроить Stripe API на свой сайт, но у меня возникла проблема. Мне нужно проверить, есть ли у клиента кредитная карта, прикрепленная к нему, чтобы обработать подписку на план.PHP | Stripe API - проверьте, есть ли у клиента карта, прикрепленная

Я не могу найти ничего об этом в их документации: https://stripe.com/docs/api#retrieve_customer

Выход из клиента выглядит следующим образом:

Stripe\Customer JSON: { 
    "id": "CUSTOMER_ID", 
    "object": "customer", 
    "account_balance": 0, 
    "created": 1474620297, 
    "currency": "dkk", 
    "default_source": null, 
    "delinquent": false, 
    "description": null, 
    "discount": null, 
    "email": "", 
    "livemode": false, 
    "metadata": { 
    }, 
    "shipping": null, 
    "sources": { 
    "object": "list", 
    "data": [ 

    ], 
    "has_more": false, 
    "total_count": 0, 
    "url": "/v1/customers/CUSTOMER_ID/sources" 
    }, 
    "subscriptions": { 
    "object": "list", 
    "data": [ 

    ], 
    "has_more": false, 
    "total_count": 0, 
    "url": "/v1/customers/CUSTOMER_ID/subscriptions" 
    } 
} 

Итак, как проверить, если клиент кредитной карты прилагается Для него?

ответ

2

попробовать что-то вроде этого:

$customer = \Stripe\Customer::retrieve($customerID); 
$cardID = $customer->default_source; 

if(isset($cardID)){ 
    echo $cardID; 
} else { 
    echo "No card"; 
    //Code for entering card info.. 
} 

Там вы получите идентификатор карты, а затем вы можете просто проверить, если вы получаете что-то. Если у клиента есть карточка, вы получаете идентификатор карты, если у клиента нет карты, вы ничего не получите.

+0

Как проверить, получает ли он что-нибудь? –

+0

@JonHolm - Проверить обновленный код :) –

0
$cards = Customer::retrieve(STRIPE_CUSTOMER_ID)->sources->all([ 
    'object' => 'card' 
])->data; 

Он будет возвращать массив объектов карты или пустой массив, если карт не существует.

if($cards == []) { 
    // no cards exist for user 
}