с помощью Laravel Cashier, как заполнить поля end_at? - PullRequest
0 голосов
/ 02 ноября 2019

В моем приложении Laravel 5.8, использующем Laravel Cashier "^ 10.3", у меня есть таблица подписок с полями меток времени trial_ends_at и end_at, и я хочу указать, для чего они нужны? Я полагаю, что trial_ends_at должен быть заполнен, когда пользователь выбирает бесплатную (пробную) подписку, а конец_at должен быть заполнен, когда пользователь выбирает несвободную подписку и создает подписку, которую я делаю:

$subscription_days_count       = config('app.subscription_days_count', 31);
$free_subscription_days_count  = config('app.free_subscription_days_count', 31);
$subscription_product_name     = config('app.subscription_product_name');

    $newSubscription = $user->newSubscription($subscription_product_name,
        $sourcePaymentPackage->stripe_plan_id)->create($requestData['purchaseDetails']['payment_token']);

    // I added 2 additive fields to subscriptions table and fill them 
    $newSubscription->source_payment_package_id = $requestData['purchaseDetails']['source_payment_package_id'];
    $newSubscription->is_free                   = $sourcePaymentPackage->is_free;
    if ( $sourcePaymentPackage->is_free ) {
        $newSubscription->trial_ends_at = Carbon::now()->addDays($free_subscription_days_count);
    } else {
        $newSubscription->ends_at = Carbon::now()->addDays($subscription_days_count);
    }
    $newSubscription->save();

Но отмена подписок с помощью метода:

$ret = $userProfile->subscription($subscription_product_name)->cancelNow();

Я вижу, что в поле таблицы подписок end_at указано время отмены выше. Это настраивается? По какому пути я должен следовать?

...