我正在使用Laravel Cashier和Stripe来开发Web应用的订阅功能。
我使用Stripe v3 JavaScript API,并使用卡片元素生成Stripe令牌。Stripe令牌已生成,如果您查看Stripe仪表板,则会创建客户。此外,stripe id保存在用户数据库中。但是,当我尝试使用以下代码订阅用户到计划时:
我使用Stripe v3 JavaScript API,并使用卡片元素生成Stripe令牌。Stripe令牌已生成,如果您查看Stripe仪表板,则会创建客户。此外,stripe id保存在用户数据库中。但是,当我尝试使用以下代码订阅用户到计划时:
$user->newSubscription($planId, $planId)->create($stripeToken, [
'email' => $user->email
]);
它失败了,出现了错误:“没有这个客户:cus_xxxxxx”。$planId变量是Stripe中计划的ID。
像我说的那样,stripe令牌被正确生成,在Stripe仪表板中创建了客户,并且stripe id已在数据库中设置。我已经深入研究了Laravel Cashier代码,似乎它在尝试更新卡信息时遇到了错误。更具体地说,它在这个函数中失败了:
public function asStripeCustomer()
这是在计费模型中找到的。
我联系了Stripe支持,他们说在创建初始客户之后,不会再进行任何进一步的API请求。
我的laravel版本是5.5.34,并且我正在使用最新的Cashier发布版。我已尝试重新安装Cashier,但它仍然无法正常工作。我还刷新了缓存。
非常感谢您提供的任何帮助。