Как передать подписку другим пользователям с помощью 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’);
}

Надеюсь, это даст вам достаточно для начала.

Другие вопросы по тегам