Laravel Cashier / Stripe未设置subscription_ends_at

时间:2014-09-13 10:35:12

标签: laravel

当我创建新订阅时,Laravel Cashier未设置subscription_ends_at字段。我现在已经花了几天时间摆弄它,我认为它在一开始就有效,但我不得不拉动存储库我们再次工作并丢失了更改,我确实安装并再次配置了所有内容,现在它不会设置该字段。但是,如果我指定试用期,它会设置trial_ends_at。

这是一个年度计划,我们想告知用户续订日期。

用户模型:

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

use Laravel\Cashier\BillableTrait;
use Laravel\Cashier\BillableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface, BillableInterface {


    use BillableTrait;

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';


    protected $dates = ['trial_ends_at', 'subscription_ends_at'];

用于创建订阅的控制器方法:

public function postConfirmSubscription()
    {
        $user = Auth::user();
        $user->subscription('premium')->create(Input::get('token.id'));
    }

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

Laravel Cashier不会设置subscription_ends_at字段,除非该订阅被取消。它旨在管理宽限期(一旦订阅被取消,用户将有权访问该日期),而不是通知用户他们的下一个付款日期或剩余的有效订阅时间。正如我原先想的那样。

当您测试取消程序时,您可能实际上已经看到该字段已填充。

我很害怕你必须为此设置一个额外的字段,让我们说" next_payment_at"和"手动"在控制器或模型级别更新它。