Laravel Cashier 创建订阅

3

创建一个Stripe客户端、将其关联的卡片和随时收费都很容易。但是,使用Laravel Cashier订阅用户在任何时间点都不是那么容易。

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

当用户在我的设置中添加卡片时,将生成卡片令牌。我尝试在此时存储令牌,并在用户想要更新其订阅时使用它,但我收到了错误消息:“您不能多次使用 Stripe 令牌”。

通过这样做,您正在创建一个新的客户。您应该更改现有客户的订阅。 - Simon Fredsted
3个回答

1

您可以正常调用它,无需使用cc令牌:

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

我不确定这在2016年是否可能,但现在绝对不可能了 :( - Inigo

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);

0
你可以将客户作为第三个参数传递给create方法。
$customer = $user->stripe_id ?
    \Laravel\Cashier\Customer::retrieve($user->stripe_id) : 
    null;

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

1
我们如何获取 $plan - Top-Master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接