Laravel Cashier - откуда берется $ stripeToken? - PullRequest
0 голосов
/ 13 июня 2018

Документация в Laravel Cashier довольно расплывчата и упускает некоторые очень важные детали, например, что такое $stripeToken и откуда он берется?

Итак, чтобы создать новую подписку, мысделать это:

$user->newSubscription('main', 'premium')->create($stripeToken);

Это первый раз, когда пользователь будет подписываться, так откуда же $stripeToken происходит именно?

В документах написано:

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

Означает ли это, что яВам нужно сначала создать объект клиента в Stripe, а затем передать идентификатор клиента как $stripeToken?Здесь упоминаются данные карты, но как мне их передать?Каков формат и что я ожидаю взамен?

Если $stripeToken является идентификатором клиента в Stripe, то Кассир предполагает, что у нас уже есть клиенты, созданные в Stripe, которых у нас не будет в первый раз.

Кто-нибудь может пролить свет на это?

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Оказывается, что stripeToken обычно генерируется формами stripe.js при их отправке.

Поскольку я использую управляемые API-формы извлечения, а не стандартные html-формы отправки, мне нужно использовать StripeAPI для создания токена из предоставленных реквизитов карты.

$stripeToken = Token::create(array(
                       "card" => array(
                           "number"    => $request->get('number'),
                           "exp_month" => str_before($request->get('expiry'), '/'),
                           "exp_year"  => str_after($request->get('expiry'), '/'),
                           "cvc"       => $request->get('cvc'),
                           "name"      => $request->get('name')
                       )
                   ));

Затем я использую $stripeToken->id и передаю его:

$user->newSubscription('main', 'premium')->create($stripeToken->id);
0 голосов
/ 14 июня 2018

Вы можете использовать Stripe JS , чтобы получить stripeToken, но если вы используете пользовательскую форму, тогда вы можете использовать Stripe checkout метод.

Использование обоихкак вы получите stripeToken в javascript, а затем вам придется передать этот токен вашему REST API для дальнейшей обработки.

...