Laravel Cashier 未定义方法meteredPrice()

Posted

技术标签:

【中文标题】Laravel Cashier 未定义方法meteredPrice()【英文标题】:Laravel Cashier undefined method meteredPrice() 【发布时间】:2021-09-16 04:43:17 【问题描述】:

我尝试在 Laravel Cashier 中使用meteredPrice() 函数。对于我需要它 - 例如,如果我在 01.06 签署订阅,我想在 01.07 付款,所以在 1 个月后。 为此,我尝试在文档中使用meteredPrice(),但收到错误“调用未定义的方法 Laravel\Cashier\SubscriptionBuilder::meteredPrice()”

$request->user()->newSubscription($plan_id, [])
                ->meteredPrice($value)
                ->create($paymentMethodId->main_payment_method);

立即支付的类似代码可以正常工作:

$request->user()->newSubscription($plan_id, $value)
                ->create($paymentMethodId->main_payment_method);

你有什么想法吗?

【问题讨论】:

【参考方案1】:

您是否使用低于 13.0 的 laravel/cashier-stripe 版本?

仅从 13.0 开始,"plans" are renamed to "prices"。试试:

$request->user()->newSubscription($plan_id, [])
    ->meteredPlan($value)
    ->create($paymentMethodId->main_payment_method);

【讨论】:

以上是关于Laravel Cashier 未定义方法meteredPrice()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Cashier 收费方法失败,单次收费 3d 安全

在试用 Laravel Cashier Paddle 期间无法交换计划

Laravel 7.0 Cashier - 条纹支付异常

使用产品结账时如何用 laravel + cashier 生成发票

Laravel Cashier - $stripeToken 来自哪里?

Laravel Cashier - updateCard() - 指导