如何使用Laravel Cashier将订阅传递给其他用户

时间:2018-08-14 10:49:43

标签: php laravel stripe-payments laravel-cashier laravel-authentication

我正在使用Laravel PHP Framework构建一个项目。我正在使用Laravel Auth进行身份验证,并使用Laravel Cashier作为Stripe的界面。

如何完成以下方案: 用户订阅了我的服务。允许他使用他的设置页面添加在他之下工作的用户。我希望他下的所有工作都归他所有。

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

我不需要完整的代码,我只想知道如何实现。

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

订阅信息将存储在“订阅”表(这是收银员的默认表)中。

感谢您的帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是为子用户赋予状态。例如。 1 =启用,0 =禁用

然后,您可以使用stripe 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’);
}

希望这给您足够的开始。