【问题标题】:Laravel Cashier + Stripe: No Such CustomerLaravel Cashier + Stripe:没有这样的客户
【发布时间】:2018-07-26 11:05:04
【问题描述】:

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

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

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

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

就像我说的那样,条带令牌正在正确生成,客户是在条带仪表板中创建的,条带 ID 正在数据库中设置。我已经深入研究了 Laravel Cashier 代码,当它尝试更新卡信息时似乎出现了错误。更具体地说,它在这个功能上失败了:

public function asStripeCustomer()

可在计费模型中找到。

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

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

非常感谢任何帮助。

【问题讨论】:

    标签: php laravel laravel-5 stripe-payments laravel-cashier


    【解决方案1】:

    这意味着用户的条带客户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();
    }   
    

    【讨论】:

      【解决方案2】:

      以防万一其他人将来遇到这个问题,我设法解决了它。

      基本上,问题归结为您的数据库设置。对我来说,我的数据库设置将所有内容都保存为小写。 Stripe 的客户密钥区分大小写。在我将数据库更改为区分大小写后再次开始工作。

      【讨论】:

        【解决方案3】:

        您是否制定了条带化计划?如果是这样,您可以这样称呼它

            try {
                $user->newSubscription('myplan','myplan')
                        ->create($stripeToken);
               }
            } catch (\Exception $e) {
                Session::flash('error_message', 'There has been an error processing your payment.');
                return redirect('/');
            }
        

        【讨论】:

        • 感谢您的建议。该计划是按条带创建的。但是,代码甚至没有达到向用户收取计划费用的地步。设置卡信息失败。
        猜你喜欢
        • 2021-12-27
        • 2020-11-23
        • 2020-07-18
        • 2021-01-06
        • 2016-06-23
        • 2019-07-09
        • 1970-01-01
        • 2015-11-16
        • 2015-12-19
        相关资源
        最近更新 更多