Laravel Cashier:我是否应该在Stripe中添加试用期?

时间:2017-07-03 13:55:22

标签: php laravel laravel-5 stripe-payments laravel-cashier

引用Laravel Cashier documentation

  

如果您希望在预先收集付款方式信息的同时向客户提供试用期,则应在创建订阅时使用trialDays方法。

假设我想在订阅中添加30天的试用期,我可以使用以下代码创建订阅:

$user->newSubscription('main', 'monthly')
        ->trialDays(30)
        ->create($stripeToken);

作为Stripe用户,我是否应该在Stripe计划中添加试用期?

enter image description here

我不确定在这里理解Laravel Cashier的逻辑。在两个不同的地方宣布一些东西似乎是多余的。

3 个答案:

答案 0 :(得分:2)

我对这些答案不是100%满意,因为该问题专门询问有关使用 Cashier 的问题。

使用收银台创建订阅将始终设置trial_end

protected function buildPayload()
{
    return array_filter([
        'billing_cycle_anchor' => $this->billingCycleAnchor,
        'coupon' => $this->coupon,
        'metadata' => $this->metadata,
        'plan' => $this->plan,
        'quantity' => $this->quantity,
        'tax_percent' => $this->getTaxPercentageForPayload(),
        'trial_end' => $this->getTrialEndForPayload(),
    ]);
}

trial_end将默认为“现在”(无试用),或者您可以选择在->trialDays(XXX)中传递的任何内容。

Stripe中定义的试用期似乎被忽略

我同意,预期的行为应是您通过收银员传递的信息将优先于计划中定义的试用日期。但是,事实并非如此。 (收银机v8.0.1)

答案 1 :(得分:1)

我想说没必要。如果您在订阅创建时添加试用日(直接使用API​​时为trial_end参数),则优先于计划中定义的试用天数!

答案 2 :(得分:0)

如果您在条带中定义试用期,则无需在代码中执行此操作。如果您不希望每次有人订阅时都试用,您可能希望在代码中使用它。