Laravel Cashier - 如何修改 cashier 以在用户数据库中存储附加参数

Laravel Cashier -How to Modify cashier to store additional parameter in user database

我正在使用 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 收银员本身填充,一旦订阅完成,我不知道如何更改。任何帮助表示赞赏。谢谢

create() 方法 returns 创建行的 Cashier Subscribtion 模型实例,因此您可以从 create() 收集返回值到 ( $subscribtion ) 变量中然后保存在这个实例中你想要的任何东西:

$subscribtion = $user->newSubscription('main', 'plan_CWtS4yCNvo5vAj')
                     ->create($ccToken, [
                         'email' => $user->email
                     ]);
$subscribtion->credits = 300;
//some other stuff
$subscribtion->save();