gpt4 book ai didi

php - Laravel 收银员 + Stripe : No Such Customer

转载 作者:行者123 更新时间:2023-12-05 01:17:44 25 4
gpt4 key购买 nike

我正在使用 Laravel Cashier 和 Stripe 为 Web 应用程序开发订阅。

我正在使用 Stripe v3 JavaScript API 并使用卡片元素生成 Stripe token 。正在生成 Stripe token ,如果您在 Stripe 仪表板中查看,则会创建一个客户。此外,一个 stripe id 被保存在用户数据库中。但是,当我尝试使用以下代码为用户订阅计划时:

$user->newSubscription($planId, $planId)->create($stripeToken, [
'email' => $user->email
]);

失败并显示错误:“没有这样的客户:cus_xxxxxx”。 $planId 变量是 Stripe 中计划的 ID。

正如我所说, strip token 生成正确,客户在 strip 仪表板中创建, strip ID 在数据库中设置。我已经深入研究了 Laravel Cashier 代码,当它尝试更新卡信息时似乎出现了错误。更具体地说,它在这个函数上失败了:

public function asStripeCustomer()

可在计费模型中找到。

我联系了 Stripe 支持,他们说在创建初始客户后不会再向他们的 API 发出进一步的请求。

我的 laravel 版本是 5.5.34,我使用的是最新的 Cashier 版本。我已尝试重新安装 Cashier,但仍然无法正常工作。我还刷新了缓存。

非常感谢任何帮助。

最佳答案

这意味着用户的 strip 客户id的当前值(存储在stripe_id列中)是无效的。

所以,只需将其删除,下次调用 newSubscription() 时,它会再次创建新客户。

此外,您可以通过执行以下操作来处理此问题:

try {
$user->newSubscription($subscription, $plan)->create($request->stripeToken);
} catch (\Exception $e) {
// No such customer. Invalid value in stripe_id. Clean it, for making the next request successfully
$user->stripe_id = NULL;
$user->save();
}

关于php - Laravel 收银员 + Stripe : No Such Customer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com