Laravel收银员(条纹) - 如何为计量使用创建订阅?



我在尝试将收银员(条纹(实现到我的Laravel应用程序中时遇到了一些麻烦。

我正在尝试做的是在现有客户(公司(上创建新订阅。但是当我这样做时,我收到以下错误:

You cannot set the quantity for metered plans.

这是我尝试做的:

$company = Company::find(1);    
$company->newSubscription('prod_XXX', 'plan_XXX')->create();

在 laravel 文档中,我发现了这个

$user->newSubscription('main', 'premium')->create($paymentMethod);

但据我了解,如果客户已经存在,我不需要在 create(( 方法中传递 paymentMethod,因为它与数据库中的stripe_id配对。

如果需要付款方式,我也尝试过:

$company = Company::find(1); 
$paymentMethod = $company->defaultPaymentMethod()->id;
$company->newSubscription('prod_XXX', 'plan_XXX')->create($paymentMethod);

但是我收到相同的错误消息。

在 Stripe 控制面板中,我在错误日志中找到了此请求正文:

{
"expand": {
"0": "latest_invoice.payment_intent"
},
"plan": "plan_XXX",
"quantity": "1",
"off_session": "true"
}

所以 newSubscription(( 显然默认传递的数量为 1。

所以回到我的问题:如何在不传递数量的情况下在现有客户上创建新的按流量计费订阅?

正如Martin Bean评论的那样,收银员并不真正支持计量计费。在他链接的 github 问题中,我找到了这个解决方法。

$user->newSubscription('default', 'plan_XXX')
->quantity(0)
->create($request->get('payment_method'));

编辑

好吧,没关系。当我稍后尝试更新用法以使用 正确的计划,我得到与之前相同的错误:(

要使用收银员在计量产品上创建订阅,您应该实现 2 个步骤:

  1. 订阅用户时在控制器中:调用数量为 NULL 的新订阅

    $this->新订阅("默认"( ->数量(空( ->创建((;

  2. 发送请求条带,用于在收银台中添加使用情况和增加相关项目数量。 创建使用情况 API

最新更新