0

我正在使用 Laravel PHP 框架构建一个项目。我使用 Laravel Auth 进行身份验证,使用 Laravel Cashier 作为 Stripe 的接口。

我怎样才能完成以下场景:用户订阅了我的服务。他可以使用他的设置页面添加在他手下工作的用户。我希望他手下的所有工作都属于他的订阅范围。

因此,例如当主用户的订阅已过期时,我希望所有子用户都收到过期订阅警报。当主用户重新订阅时,我希望所有子用户都能够登录。

我不想要完整的代码,我只想知道如何处理这个问题。

所有用户信息都存储在“用户”表中(这是用于身份验证的默认表)。

订阅信息存储在“订阅”表(即 Cashier 的默认表)中。

任何帮助表示赞赏。

谢谢。

4

1 回答 1

0

您可以这样做的一种方法是为子用户提供状态。例如。1 = 启用,0 = 禁用

然后你可以使用支付失败或订阅过期的条带 webhook将所有子用户状态设置为 0。然后使用成功支付或重新订阅的 webhook 将子用户状态设置回 1。这是条带 webhook 事件列表 - https://stripe.com/docs/api#event_types

然后在您的 Auth/LoginController.php 中,您可以通过添加以下内容来覆盖凭证方法:

protected function credentials(\Illuminate\Http\Request $request)
{
    $credentials = $request->only($this->username(), ‘password’);
    return array_add($credentials, ‘status’, ‘1’);
}

希望这能给你足够的开始。

于 2018-08-14T11:17:53.847 回答