Я добавил эту кредитную карту, когда клиент впервые регистрируется
// CREDIT CARD CODE (STRIPE)
$q_get_user = "select * from users where `id` = '$user_id' ";
$r_get_user = mysqli_query($conn,$q_get_user);
$get_user = mysqli_fetch_assoc($r_get_user);if(1) {
\Stripe\Stripe::setApiKey("sk_live_9N676756776");try {
$t = \Stripe\Token::create(
array(
"card" => array(
"name" => $get_user['first_name']." ".$get_user['last_name'],
"number" => $credit_num,
"exp_month" => $credit_month,
"exp_year" => $credit_year,
"cvc" => $credit_ccv
)
)
);
if($t->id != '') {
try {
$c = \Stripe\Customer::create(array(
"description" => "Customer for ".$get_user['email'],
"source" => $t->id)
);
if($c->id != '') {
$stripe_token_response = mysqli_real_escape_string($conn, json_encode($t));
$stripe_token_id = mysqli_real_escape_string($conn, $t->id);
$stripe_customer_response = mysqli_real_escape_string($conn, json_encode($c));
$stripe_customer_id = mysqli_real_escape_string($conn, $c->id);
$stripe_card_id = mysqli_real_escape_string($conn, $c->default_source);
}
} catch (Exception $e) {
//print_r($e->getMessage());
header('Location: /credits?error=cc&message='.urlencode($e->getMessage()));die;
}
}
} catch (Exception $e) {
//print_r($e->getMessage());
header('Location: /credits?error=cc&message='.urlencode($e->getMessage()));die;
}}
// END - CREDIT CARD CODE (STRIPE)
Как сделать так, чтобы новый клиент мог добавить его к существующему клиенту? Поэтому клиент добавляет новую карту (их будет больше одной)
Вы отправляете данные карты через API напрямую, что, вероятно, не то, что вы хотите сделать. Это означает, что вы получаете номера карт на вашем сервере, который имеет некоторые серьезные последствия соблюдения PCI. Я настоятельно рекомендую вам изменить интеграцию, чтобы вы всегда сначала указывали данные карты, используя Stripe.js или же Нашивка на стороне клиента отправить данные карты непосредственно в Stripe и получить уникальный токен карты (tok_XXX), который вы затем безопасно отправите на свой сервер, чтобы создать Клиента или добавить в качестве Карты.
Вы можете найти описание процесса обновления карты Вот; единственное отличие, которое вам нужно, состоит в том, что вместо того, чтобы сделать это, чтобы заменить карту:
$cu->source = $_POST['stripeToken']; // obtained with Checkout
Вы хотите сделай это добавить новый:
$customer->sources->create(array("source" => $t->id));
Других решений пока нет …