Полоса заряда несколько раз

Используя Stripe.js, я получаю a card token, который затем можно использовать для загрузки через:

Stripe::Charge.create(
  :amount => 400,
  :currency => "usd",
  :card => "tok_103rC02eZvKYlo2C2RD5docg", # obtained with Stripe.js,
  :metadata => {'order_id' => '6735'}
)

Можно ли использовать один и тот же card token несколько раз, чтобы зарядить клиента, или это 1 токен/заряд и любой последующий заряд, мне нужно будет захватить новый токен?

Ответ 1

Хороший вопрос! Когда вы используете токен таким образом, он сразу же потребляется, поэтому его нельзя использовать снова. Однако вместо этого вы можете указать этот токен в качестве аргумента card при создании объекта Customer в Stripe. Затем вы можете выполнить несколько сборов против этого Клиента.

Надеюсь, что это поможет. Ларри

PS Я работаю над поддержкой на Stripe.

Ответ 2

Есть две вещи. Один - это токен, а один - идентификатор карты. Токен можно использовать один раз. Также у него есть определенный срок. Идентификатор карты, который мы получаем после сохранения карты в облаке. Мы можем использовать идентификатор карты несколько раз. Токен генерируется через открытый ключ. и это нельзя использовать снова. Таким образом, вы можете использовать идентификатор карты для оплаты несколько раз

require_once APPPATH . 'libraries/Stripe.php';
Stripe::setApiKey("***********************"); //Put here your secrect key

//Add card and get token id.

$tokenDetail = Stripe_Token::create(array(
"currency" => "USD",
"card" => array(
"number" => '********', //$credit_card_number,
"exp_month" => '**', //$exp_date_month,
"exp_year" => '**', //$exp_date_year,
"cvc" => '***'//$cvv_number
)
));


$token = $tokenDetail->id;
Stripe::setApiKey("*********************"); ////Put here your secrect key

// Get card id by creating a Customer.
$customer = Stripe_Customer::create(array(
"source" => $tokenDetail->id,
"description" => "For testing purpose",
)
);  

$response = Stripe_Charge::create(array(
"amount" => 100,
"currency" => "usd",
"customer" => $customer->id // obtained with Stripe.js
));