Laravel Cashier创建订阅

时间:2015-03-01 06:37:22

标签: php laravel stripe-payments

创建条形客户非常容易,将卡与该客户关联,并在之后的任何时间向他们收费。但是,使用Laravel收银员之后,在任何时候订阅用户并不容易。

Auth::user()->subscription(Input::get($new_plan_id))->create($card_token, array(
    'email' => Auth::user()->email
));

当用户在我的设置中添加卡时,会生成卡片令牌。我已尝试在此时存储令牌并在用户想要更新订阅时使用它但我收到错误:

You cannot use a Stripe token more than once

3 个答案:

答案 0 :(得分:1)

下面的代码在Laravel 5.1中适用于我:

对于创建订阅:

$creditcardToken = Input::get( 'stripeToken' );
$user->subscription(Input::get( 'subscription' ))->create($creditcardToken,['email' => $user->email,'description' => 'Customer from DevLaravel']);

对于更新订阅,您必须执行以下步骤:

1. // Get Subscription
$subscription = $user->subscriptions()->where('stripe_id', 'sub_5vp6DX7N6yVJqY')->first();
2. // Update the subscription plan
$subscription->setStripePlan('new-plan-name');
3. // Apply the coupon
$subscription->applyCoupon($coupon);

答案 1 :(得分:1)

您可以简单地调用它,而不使用cc令牌:

$user->newSubscription('main', $plan)->create();

答案 2 :(得分:0)

您可以将客户作为第三个参数传递给create方法。

$customer = $user->stripe_id ?
    \Laravel\Cashier\Customer::retrieve($user->stripe_id) : 
    null;

$user->subscription($plan)->create($token, $meta, $customer);