You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Cashier Paddle试用期调用swap无法切换订阅计划问题

问题产生原因
  1. 版本匹配偏差:你参考的Laravel 8.x版本Cashier Paddle文档说明仅适用于v0.1.x及更早的包版本。从v1.0版本开始,Cashier Paddle调整了订阅交互逻辑,默认禁止试用期内直接调用swap方法切换计划,因此会抛出LogicException: Cannot swap plans while on trial异常。
  2. 底层规则调整:该限制是为了适配Paddle官方API对试用期订阅的变更规则,避免直接切换计划导致计费周期、试用时长计算出现逻辑冲突,因此包作者新增了强制校验拦截不符合规范的调用。
解决方案
  • 方案1:调用swapAndInvoice方法(保留试用期场景)
    如果你需要在切换计划的同时保留原有试用期,可直接使用官方提供的swapAndInvoice方法替代swap,该方法会跳过试用期校验,触发Paddle重新计算差价,同时按规则保留原试用时长:
    $user->subscription('default')->swapAndInvoice($planId);
    
  • 方案2:提前结束试用期再切换(无需保留试用期场景)
    如果业务逻辑不需要保留原有试用期,可先结束试用再调用swap方法:
    $subscription = $user->subscription('default');
    $subscription->skipTrial()->swap($planId);
    
    该操作会直接终止当前试用期,立即按新订阅计划规则生效计费。
  • 方案3:降级包版本(不推荐)
    如果你完全需要对齐8.x文档的原有行为,可将Cashier Paddle版本降级到v0.1.x系列,但该版本已停止维护,存在安全风险,不建议生产环境使用。

内容的提问来源于stack exchange,提问作者Norbert Jurga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 02:36:03