Касса 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();