- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
我是一名优秀的程序员,十分优秀!