获取即将推出的 Stripe 发票,以按比例调整数量

Jac*_*row 3 php stripe-payments

我想获取使用 Stripe 更改订阅数量的成本。我找到了即将推出的API,它看起来应该可以工作,但我无法找出传递给它的参数的正确组合。

这将返回错误You must pass one of plan, price, or price_data.

$this->stripe->invoices->upcoming([
    'customer' => $this->stripe_id,
    'subscription' => $this->subscription_id,
    'subscription_items' => [[
      'quantity' => $quantity
    ]]
 ]
Run Code Online (Sandbox Code Playgroud)

但是当我添加价格 ID 时,如下所示,出现错误Cannot add multiple subscription items with the same plan: price_1H...

$this->stripe->invoices->upcoming([
    'customer' => $this->stripe_id,
    'subscription' => $this->subscription_id,
    'subscription_items' => [[
        'price' => $this->price_id,
        'quantity' => $quantity
    ]]
]));
Run Code Online (Sandbox Code Playgroud)

删除订阅 ID 后只会返回全新订阅的费用,而不是现有订阅的按比例分配的发票。

Jac*_*row 5

与往常一样,在发布问题两秒钟后,我解决了问题 - 除了传递订阅 id 之外,还需要传递订阅项目的 id,我通过以下代码片段做到了这一点:

$subscription = $this->stripe->subscriptions->retrieve($this->subscription_id);
$this->stripe->invoices->upcoming([
    'customer' => $this->stripe_id,
    'subscription' => $this->subscription_id,
    'subscription_items' => [[
        'id' => $subscription->items->data[0]->id,
        'quantity' => $quantity
    ]]
]);
Run Code Online (Sandbox Code Playgroud)