我正在使用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 cashier填充,我不知道如何改变。任何帮助表示赞赏。感谢。
答案 0 :(得分:2)
create()
方法返回创建的行的Cashier Subscribtion模型的实例,因此您可以从($ subscribtion)变量中的create()
收集返回的值,然后在此实例上保存您想要的任何内容:
$subscribtion = $user->newSubscription('main', 'plan_CWtS4yCNvo5vAj')
->create($ccToken, [
'email' => $user->email
]);
$subscribtion->credits = 300;
//some other stuff
$subscribtion->save();