Php 条带:预览即将发布的发票以更新订阅

Php 条带:预览即将发布的发票以更新订阅,php,api,stripe-invoices,Php,Api,Stripe Invoices,如何正确获取升级/降级订阅时我将要支付的未来发票(账单大小)?因此,它将考虑应用的息票、当前余额/信用(降级后)等 像这样尝试: \Stripe\Invoice::upcoming([ "customer" => $user->stripe_id, "subscription" => 'sub_XXXXXXXXXXX', // current user subscription (monthly) "subscription_prorate" =>

如何正确获取升级/降级订阅时我将要支付的未来发票(账单大小)?因此,它将考虑应用的息票、当前余额/信用(降级后)等

像这样尝试:

\Stripe\Invoice::upcoming([
    "customer" => $user->stripe_id,
    "subscription" => 'sub_XXXXXXXXXXX', // current user subscription (monthly)
    "subscription_prorate" => true,
    "subscription_items" => [
        ["plan" => "plan_XXXXXXXXXXX"] // plan for upgrade (annually)
    ]
]);
"subscription_items" => [
    ["id" => "currentPlanId", deleted => true]
    ["plan" => "plan_XXXXXXXXXXX"] // plan for upgrade (annually)
]
但是我得到了“Stripe\Error\InvalidRequest:货币和间隔字段必须在该订阅的所有计划中匹配。在间隔字段中发现不匹配。”

我知道我弄错了,所以请告诉我应该怎么做?

我最近在使用.NET客户端时遇到了一个类似的错误,我很确定问题是相同的。如果要更新订阅的计划,它们必须具有相同的货币和间隔。例如,订阅不能在月度计划中包含一个项目,而在年度计划中包含另一个项目。如果要预览不同时间间隔的计划之间的切换,必须明确删除旧计划。我的PHP已经生锈了,但我猜是这样的:

\Stripe\Invoice::upcoming([
    "customer" => $user->stripe_id,
    "subscription" => 'sub_XXXXXXXXXXX', // current user subscription (monthly)
    "subscription_prorate" => true,
    "subscription_items" => [
        ["plan" => "plan_XXXXXXXXXXX"] // plan for upgrade (annually)
    ]
]);
"subscription_items" => [
    ["id" => "currentPlanId", deleted => true]
    ["plan" => "plan_XXXXXXXXXXX"] // plan for upgrade (annually)
]
查看stripe仪表板中的更新订阅表单有助于我更好地理解这一点。可以肯定的是,以前版本的API不能以这种方式工作