我使用Stripe来管理订阅,并且我有一个php函数来升级用户的订阅。目前的代码如下:
$stripe_subscription = \Stripe\Subscription::retrieve($stripe_subscription_data->id);
$stripe_subscription->plan = $request->plan;
$stripe_subscription->save();现有代码可以工作,但我试图告诉Stripe不要按比例分配订阅。根据条纹API,我可以使用update函数并将prorate设置为false。它们的示例代码如下。因此,我将代码修改如下:
$stripe_subscription = \Stripe\Subscription::retrieve($stripe_subscription_data->id);
\Stripe\Subscription::update($stripe_subscription_data->id, array(
"items" => array(
array(
"id" => $stripe_subscription->items->data[0]->id,
"plan" => $request->plan,
),
),
"prorate" => false,
));
$stripe_subscription->save();当我现在使用这个函数时,我得到了一个错误:
“调用未定义方法Stripe\Subscription::update()”
我检查了Stripe的php插件变化量g,我运行的是3.14版本,它应该定义了更新函数。此外,在相同的更新中定义的检索方法没有问题,所以我不知道如何有一个未定义的,而不是另一个。
如何通过更改原始代码或修复未定义的错误,将“分段”设置为false更新订阅?
发布于 2018-08-24 23:51:21
我想我明白这是怎么回事了--这种改变是不完全正确的。看起来,update方法是在PHP库的3.15.0版本中添加的:
https://github.com/stripe/stripe-php/commit/51d4ece822c4db166adbe2be167564d84bce6222
我还会注意到这个版本已经很老了,我建议升级到最新版本。如果您使用的是PHP的旧版本(由于缺乏安全修补程序而不推荐用于生产),那么您可以使用5.9.2版本:
https://github.com/stripe/stripe-php/blob/master/CHANGELOG.md#600---2018-02-07
https://stackoverflow.com/questions/52011215
复制相似问题