4

在 Stripe 测试中遇到这个问题。过去一切都在测试中工作,但是当我在 Stripe 中创建一个新计划并删除原来的计划时,我现在收到以下错误:

No such plan: monthly; one exists with a name of monthly, but its ID is primary.

控制器

$user->newSubscription('primary', 'monthly')->create($token, [ ]);

计划详情

ID: primary
Name: monthly
Price: $19.99 USD/month
Trial period: No trial

php artisan config:clear 没有帮助。我正在使用 Laravel 5.2 和 Cashier 6.0。

.env 文件

STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_....

配置/服务.php

'stripe' => [
    'model'  => App\User::class,
    'key'    => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],
4

4 回答 4

6

区分产品标识符和计划标识符非常重要。自从编写了许多教程以来,条纹可能已经发生了变化。我花了几个小时搜索才意识到这一点。由于我是条带新手,因此很容易找到产品和产品 ID,但很难找到计划 ID。事实上,我必须从产品页面将计划“导出”到 CSV,才能获得计划 ID 的 ID。

希望这可以帮助像我一样迷路的人

于 2019-02-17T05:19:09.687 回答
2

改用这个:

$user->newSubscription('primary', 'primary')->create($token, [ ]);

从文档:

传递给 newSubscription 方法的第一个参数应该是订阅的名称。第二个参数是用户订阅的特定 Stripe 计划。此值应对应于 Stripe 中的计划标识符。

所以第二个参数必须等于我的 Stripe 计划中的 ID 值!在这种情况下,该值为primary,而不是monthly

于 2016-12-16T14:16:38.110 回答
1

主要问题是您在 newSubscription() 的第二个参数中传递了计划名称而不是计划 ID。应该是这样的

$user->newSubscription('main' , 'plan_GNxxxxxxx')->create($request->stripeToken,[ ]);

于 2019-12-18T11:44:25.463 回答
0

$user->newSubscription('XXXX', 'price_XXXXXXX')->create($request->stripeToken);

脚步:

  1. 为条带帐户创建订阅(测试模式)。
  2. 在订阅下需要创建具有数量和价格以及重复选项的产品。
  3. 创建产品后,您可以在产品菜单中看到产品,单击它并找到 API ID。
  4. 所以最后在函数 newSubscription() 中,第一个参数是你创建它时编写的订阅名称,第二个参数是产品下的 APP ID。
于 2021-02-26T09:29:28.613 回答