Laravel Cashier(Stripe)使用具有令牌的现有客户进行订阅

时间:2019-02-14 22:46:39

标签: laravel stripe-payments laravel-cashier

我正在开发一个涉及订阅付款的Laravel应用程序。现在,我正在努力使用令牌但使用现有客户来订阅用户。这是方案。在我的应用程序中,用户可以更新他们的付款/帐单信息(基本上是卡)。当他们更新付款信息时,他们只是在添加卡信息。然后,用户可以付款或订阅他们想要的任何东西。

第一位用户将添加他们的付款方式或卡信息。所以我这样创建客户。

     $user->createAsStripeCustomer($token, array_merge($options, [
        'email' => 'email address',
     ]));

因此,上述方法将为用户创建带区客户以及卡。然后明天,用户可能想订阅一个频道。 Laravel Cashier提供了以下订阅方法。

$user->newSubscription('subscription-name', 'my-plan')->create($token);

然后上述代码的问题是,我必须再次传递令牌。如果必须再次传递令牌,则必须在Javascript中再次生成令牌。如果必须在javascript中再次生成令牌,则必须要求用户再次输入卡信息以获取令牌。那么,如何使用户使用现有的客户信息进行订阅呢?我该怎么办?

1 个答案:

答案 0 :(得分:0)

一种方法是,每当您创建条纹客户时,将用户添加到免费订阅计划中,这样,在订阅之前,他无需支付任何费用。当用户开始订阅时,我们可以使用以下方法简单地将订阅计划更改为所需的计划:

$user->subscription('main')
        ->skipTrial()
        ->swap('provider-plan-id');

另一种方法是,每当我们创建条纹客户时,要求用户选择订阅计划并将其置于试用期,直到他订阅为止。