Как передать подписку другим пользователям с помощью Laravel Cashier
Я строю проект с использованием Laravel PHP Framework. Я использую Laravel Auth для аутентификации и Laravel Cashier в качестве интерфейса для Stripe.
Как я могу выполнить следующий сценарий: Пользователь подписался на мой сервис. Ему разрешено добавлять пользователей, работающих под ним, с помощью его страницы настроек. Я хочу, чтобы вся эта работа под ним попала под его подписку.
Так, например, когда срок действия подписки основного пользователя истек, я хочу, чтобы все подчиненные пользователи получали оповещение об истечении срока подписки. Когда основной пользователь повторно подписывается, я хочу, чтобы все подчиненные пользователи могли войти в систему.
Я не хочу полный код, я просто хочу знать, как подойти к этому.
Вся информация о пользователях хранится в таблице "пользователи" (это таблица по умолчанию для аутентификации).
Информация о подписке сохраняется в таблице "подписки" (это таблица по умолчанию для кассира).
Любая помощь приветствуется.
Благодарю.
1 ответ
Один из способов сделать это - присвоить суб-пользователям статус. например. 1 = включено и 0 = отключено
Затем вы можете использовать полосовой веб-крючок для неудачного платежа или срок действия подписки истек, чтобы установить для всех статусов пользователей значение 0. Затем используйте веб-крючок для успешной оплаты или повторной подписки, чтобы установить статус суб-пользователей обратно в 1. Вот список событий полосовых веб-крюков - https://stripe.com/docs/api
Затем в вашем Auth/LoginController.php вы можете переопределить метод учетных данных, добавив следующее:
protected function credentials(\Illuminate\Http\Request $request)
{
$credentials = $request->only($this->username(), ‘password’);
return array_add($credentials, ‘status’, ‘1’);
}
Надеюсь, это даст вам достаточно для начала.