我正在寻找一种为客户创建新来源的方法,然后将该来源设置为客户的默认来源。我目前面临的问题是,创建源代码的响应不能让我轻松识别新创建源的id,以便我可以将该源设置为默认值。提前感谢您向我展示获取ID所需的简单方法,将源设置为默认值。以下是我的代码,没有任何API密钥和客户ID:
\Stripe\Stripe::setApiKey($stripe_api_key);
$customer = \Stripe\Customer::retrieve($_SESSION['parent']['stripe_customer_id']);
$customer->sources->create(array('source' => array("object" => "card", 'exp_month' => $expire_month, 'exp_year' => $expire_year, 'number' => $card_number, 'address_line1' => $billing_address1, 'address_line2' => $billing_address2, 'address_city' => $billing_city, 'address_zip' => $billing_postal_code, 'address_country' => $billing_country, 'currency' => 'GBP', 'cvc' => $security_code, 'name' => $_SESSION['parent']['firstname'] . ' ' . $_SESSION['parent']['lastname'])))->__toArray(true);
//set as default
if (isset($_POST['check_default_source'])) {
$customer->default_source=$customer['id'];
$customer->save();
}
答案 0 :(得分:0)
我能够找到问题的解决方案。 Stripe API确实发回刚刚创建的源代码的ID,并获取我使用下面代码的ID:
$source_id = json_decode($customer->sources->getLastResponse()->body)->id;
答案 1 :(得分:0)
我也有这个问题,略有不同。
我从token_id添加了新来源。
getLastResponse
方法在我的API或库版本中不可用。
但是使用令牌对象(Stripe :: Token :: retreive(token_id)),您实际上可以检索card_id,并使用它来更新default_source。
花了我很长时间才弄清楚这一点,因此我将其发布在这里。也许将来对某人有帮助...