Laravel 收银员:我是否也应该在 Stripe 中添加试用期?
Laravel Cashier: should I add a trial period in Stripe too?
引用 Laravel Cashier documentation:
If you would like to offer trial periods to your customers while still collecting payment method information up front, You should use the trialDays method when creating your subscriptions.
假设我想为我的订阅添加 30 天的试用期,我可以使用以下代码创建订阅:
$user->newSubscription('main', 'monthly')
->trialDays(30)
->create($stripeToken);
作为 Stripe 用户,我是否也应该在 Stripe 计划中添加试用期?
我不确定这里Laravel收银员的逻辑。在两个不同的地方声明一些东西似乎是多余的。
如果您在条带中定义试用期,则无需在代码中进行。如果您不想每次有人订阅时都进行试用,您可能希望在代码中使用它。
我会说它没有必要。如果您在创建订阅时添加试用日(直接使用 API 时的 trial_end 参数),那将优先于计划中定义的试用日!
我对这些答案不是 100% 满意,因为这个问题专门询问有关使用 Cashier 的问题。
使用 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
要么是默认的 "now"(没有试用),要么是你在 ->trialDays(XXX)
中选择传递的任何内容。
Stripe 中定义的试用期似乎被忽略。
我同意,预期的行为应该是您通过收银台传递的内容优先于计划中定义的试用日。然而,情况似乎并非如此。 (收银台 v8.0.1)
引用 Laravel Cashier documentation:
If you would like to offer trial periods to your customers while still collecting payment method information up front, You should use the trialDays method when creating your subscriptions.
假设我想为我的订阅添加 30 天的试用期,我可以使用以下代码创建订阅:
$user->newSubscription('main', 'monthly')
->trialDays(30)
->create($stripeToken);
作为 Stripe 用户,我是否也应该在 Stripe 计划中添加试用期?
我不确定这里Laravel收银员的逻辑。在两个不同的地方声明一些东西似乎是多余的。
如果您在条带中定义试用期,则无需在代码中进行。如果您不想每次有人订阅时都进行试用,您可能希望在代码中使用它。
我会说它没有必要。如果您在创建订阅时添加试用日(直接使用 API 时的 trial_end 参数),那将优先于计划中定义的试用日!
我对这些答案不是 100% 满意,因为这个问题专门询问有关使用 Cashier 的问题。
使用 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
要么是默认的 "now"(没有试用),要么是你在 ->trialDays(XXX)
中选择传递的任何内容。
Stripe 中定义的试用期似乎被忽略。
我同意,预期的行为应该是您通过收银台传递的内容优先于计划中定义的试用日。然而,情况似乎并非如此。 (收银台 v8.0.1)