Как добавить карту пользователю и зарядить ее с помощью Stripe?

1

У меня есть страница, где пользователь вводит cc и получает плату.

Я создаю токен карты, используя js

Stripe.card.createToken(ccData, function stripeResponseHandler(status, response) { 
    var token = response.id;

    // add the cc info to the user using
    // charge the cc for an amount
});

Чтобы добавить cc, я использую php

$stripeResp = Stripe_Customer::retrieve($stripeUserId);
$stripeResp->sources->create(['source' => $cardToken]);

Чтобы зарядить cc, я также использую php

$stripeCharge = Stripe_Charge::create([
    'source'      => $token,
    'amount'      => $amount
]);

Выполняя все это, я не You cannot use a Stripe token more than once.

Любые идеи, как я могу сохранить cc этому пользователю $stripeUserId и зарядить его.

PHP приветствуется, но js тоже отлично.

Теги:
stripe-payments
credit-card

1 ответ

0
Лучший ответ

https://stripe.com/docs/tutorials/charges

Сохранение данных кредитной карты для последующего

Маркерные жетоны можно использовать только один раз, но это не значит, что вы должны запрашивать данные своей карты для каждого платежа. Stripe предоставляет тип объекта Customer, который упрощает сохранение этой и другой информации для последующего использования.

Вместо того, чтобы немедленно заряжать карту, создайте нового Клиента, сохранив токен на клиенте в процессе. Это позволит вам заряжать клиента в любой момент в будущем:

(пример следует на нескольких языках). Версия PHP:

// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("yourkey");

// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];

// Create a Customer
$customer = \Stripe\Customer::create(array(
  "source" => $token,
  "description" => "Example customer")
);

// Charge the Customer instead of the card
\Stripe\Charge::create(array(
  "amount" => 1000, // amount in cents, again
  "currency" => "usd",
  "customer" => $customer->id)
);

// YOUR CODE: Save the customer ID and other info in a database for later!

// YOUR CODE: When it time to charge the customer again, retrieve the customer ID!

\Stripe\Charge::create(array(
  "amount"   => 1500, // $15.00 this time
  "currency" => "usd",
  "customer" => $customerId // Previously stored, then retrieved
  ));

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

Дополнительная информация на https://stripe.com/docs/api#create_charge-customer

У Stripe есть отличная документация, пожалуйста, прочитайте ее!

  • 0
    спасибо, я думаю, я просто запутался в какой-то момент

Ещё вопросы

Сообщество Overcoder
Наверх
Меню