Laravel 设置锚定日期时收银员订阅不按比例收取首笔费用
Laravel Cashier Subscription noProrate first charge when setting anchor date
我正在使用 Laravel Cashier (Stripe) 创建订阅。我想对其进行设置,以便无论用户订阅的月份是哪一天,它都会立即向他们收取全额费用,然后将锚定日期设置为之后每三个月的第一天。
例如,在 3 月 8 日订阅的人将遵循以下付款间隔:
- 3 月 8 日 - 全额收费
- 6 月 1 日 - 全额收费
- 9 月 1 日 - 全额收费
- 12 月 1 日 - 全额收费
- 等等……
我试过了,但它仍然按比例分配第一笔费用:
$anchor = Carbon::now()->addMonths(3);
$anchor = $anchor->startOfMonth();
$subscription = $request->user()
->newSubscription('default', 'price_id')
->anchorBillingCycleOn($anchor->startOfDay())
->noProrate()
->create($request->paymentMethod);
感谢任何帮助!
您还需要在创建订阅的请求中将 backdate_start_date
(参见 api ref)设置为当月的 1 号。需要注意的一件事是,使用它意味着您订阅的 start_date
和 creation_date
将不再相同 - start_date
将与您指定的回溯开始日期相同.
参考您已经给出的示例 - 如果您要在 3 月 8 日创建订阅,您需要将 billing_cycle_anchor
设置为 6 月 1 日(您的代码已经在做)并且 backdate_start_date
到3 月 1 日(您需要添加)。这将立即为 3 月 1 日至 6 月 1 日之间的时间创建一张发票,下一张发票将在 6 月 1 日创建。 Stripe 的文档对此进行了讨论 here.
以上信息对 Stripe 来说比 Laravel 收银员更通用。为了设置 billing_cycle_anchor
和 Laravel 收银员,您的请求应该如下所示:
$subscription = $request->user()
->newSubscription('default', 'price_id')
->anchorBillingCycleOn($anchor->startOfDay())
->noProrate()
->create($request->paymentMethod, [], ['backdate_start_date' => {{BACKDATED_START_DATE}},]);
我正在使用 Laravel Cashier (Stripe) 创建订阅。我想对其进行设置,以便无论用户订阅的月份是哪一天,它都会立即向他们收取全额费用,然后将锚定日期设置为之后每三个月的第一天。
例如,在 3 月 8 日订阅的人将遵循以下付款间隔:
- 3 月 8 日 - 全额收费
- 6 月 1 日 - 全额收费
- 9 月 1 日 - 全额收费
- 12 月 1 日 - 全额收费
- 等等……
我试过了,但它仍然按比例分配第一笔费用:
$anchor = Carbon::now()->addMonths(3);
$anchor = $anchor->startOfMonth();
$subscription = $request->user()
->newSubscription('default', 'price_id')
->anchorBillingCycleOn($anchor->startOfDay())
->noProrate()
->create($request->paymentMethod);
感谢任何帮助!
您还需要在创建订阅的请求中将 backdate_start_date
(参见 api ref)设置为当月的 1 号。需要注意的一件事是,使用它意味着您订阅的 start_date
和 creation_date
将不再相同 - start_date
将与您指定的回溯开始日期相同.
参考您已经给出的示例 - 如果您要在 3 月 8 日创建订阅,您需要将 billing_cycle_anchor
设置为 6 月 1 日(您的代码已经在做)并且 backdate_start_date
到3 月 1 日(您需要添加)。这将立即为 3 月 1 日至 6 月 1 日之间的时间创建一张发票,下一张发票将在 6 月 1 日创建。 Stripe 的文档对此进行了讨论 here.
以上信息对 Stripe 来说比 Laravel 收银员更通用。为了设置 billing_cycle_anchor
和 Laravel 收银员,您的请求应该如下所示:
$subscription = $request->user()
->newSubscription('default', 'price_id')
->anchorBillingCycleOn($anchor->startOfDay())
->noProrate()
->create($request->paymentMethod, [], ['backdate_start_date' => {{BACKDATED_START_DATE}},]);