从 Laravel 出纳处获取下一个账单日期

Get next billing date from Laravel Cashier

我已经通过 Laravel 的 Cashier 套餐为用户订阅了订阅计划。我现在想显示下一次向用户收费的日期,但这似乎无法通过 Billable 特征获得。

如何获得下一个账单日期? 谢谢!

解决方法是使用asStripeCustomer方法:

// Retrieve the timestamp from Stripe
$timestamp = $user->asStripeCustomer()["subscriptions"]->data[0]["current_period_end"];

// Cast to Carbon instance and return
return \Carbon\Carbon::createFromTimeStamp($timestamp)->toFormattedDateString();

请注意,我只对具有单一订阅的用户进行了测试 - data[0]

您可能需要为多个订阅更改此代码,或者如果用户已取消并开始另一个订阅。

订阅还有一个 ->asStripeSubscription() 方法,让您可以访问该订阅的值。所以你可以这样做:

// Retrieve the timestamp from Stripe
$timestamp = $subscription->current_period_end;

// Cast to Carbon instance and return
return \Carbon\Carbon::createFromTimeStamp($timestamp)->toFormattedDateString();

基于之前的答案,以下是对我有用的内容:

private function getSubscriptionRenewDate($plan)
{
    $sub = Auth::user()->subscription($plan)->asStripeSubscription();
    return Carbon::createFromTimeStamp($sub->current_period_end)->format('F jS, Y');
}