Касса Laravel - Как изменить кассу, чтобы сохранить дополнительный параметр в пользовательской базе данных

Я использую Laravel Cashier вместе со Stripe для управления подписками. Пользователь помещает данные своей кредитной карты при регистрации и подписывается на план, но я также хочу, чтобы они добавили некоторые кредиты в свою учетную запись при подписке на конкретный план.

Например, если пользователь подписывается на Bronze пакет я хочу положить 300 credits (скажем так) в свой аккаунт после успешного завершения подписки. Как я могу это сделать?? любой совет.

Пока мой код подписки такой

Контроллер подписки

// create the users subscription
        // grab the credit card token
        $ccToken = $request->input('cc_token');
        $plan = $request->input('plan');

        // create the subscription
        try {
            $user->newSubscription('main', 'plan_CWtS4yCNvo5vAj')->create($ccToken, [
                'email' => $user->email
            ]);
        } catch (\Exception $e) {
            return back()->withErrors(['message' => 'Error creating subscription.'.$e->getMessage()]);
        }

        return redirect()->back()->with('success','Successfully subscribed');

Поскольку база данных пользователя заполняется самим кассиром laravel после подписки, я понятия не имею, как я могу это изменить. Любая помощь приветствуется. Благодарю.

1 ответ

Решение

create() Метод возвращает экземпляр модели подписки на кассу созданной строки, поэтому вы можете получить возвращенное значение из create() в переменной ( $subscription) сохраните все, что вы хотите, в этом экземпляре:

$subscribtion = $user->newSubscription('main', 'plan_CWtS4yCNvo5vAj')
                     ->create($ccToken, [
                         'email' => $user->email
                     ]);
$subscribtion->credits = 300;
//some other stuff
$subscribtion->save();
Другие вопросы по тегам