引用Laravel Cashier documentation:
如果您希望在预先收集付款方式信息的同时向客户提供试用期,则应在创建订阅时使用trialDays方法。
假设我想在订阅中添加30天的试用期,我可以使用以下代码创建订阅:
$user->newSubscription('main', 'monthly')
->trialDays(30)
->create($stripeToken);
作为Stripe用户,我是否应该在Stripe计划中添加试用期?
我不确定在这里理解Laravel Cashier的逻辑。在两个不同的地方宣布一些东西似乎是多余的。
答案 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)
如果您在条带中定义试用期,则无需在代码中执行此操作。如果您不希望每次有人订阅时都试用,您可能希望在代码中使用它。