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/