Laravel Cashier上的documentation含糊不清,错过了一些非常重要的细节,例如$stripeToken是什么以及它来自何处?

因此,要创建新的订阅,请执行以下操作:

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

这是用户第一次订阅,因此$stripeToken到底是哪里来的?

在文档中说:



这是否意味着我必须先在Stripe中手动创建客户对象,然后将客户ID作为$stripeToken传递?它提到了卡的详细信息,但是我如何通过它们呢?格式是什么,我期望得到什么?

如果$stripeToken是Stripe中的客户ID,那么Cashier假设我们已经在Stripe中创建了客户,这将是第一次。

谁能对此有所启发?

最佳答案

事实证明,stripeToken通常由stripe.js表单在提交时生成。

由于我使用的是API驱动的结帐表单,而不是标准的html提交表单,因此我需要使用Stripe API从提供的卡详细信息中创建 token 。

$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);

关于php - Laravel Cashier-$ stripeToken来自哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50835945/

10-09 18:08