从Laravel Cashier获取下一个结算日期

Joh*_*984 12 laravel laravel-cashier laravel-5.3

我已经通过Laravel的Cashier软件包订阅了用户订阅计划.我现在想要显示用户下次开帐单的日期,但是这似乎不是通过Billable特征可用的日期.

如何获得下一个结算日期?谢谢!

Joh*_*984 11

解决方案是使用以下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();
Run Code Online (Sandbox Code Playgroud)

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

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


spl*_*t19 9

基于以前的答案,这对我有用:

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


小智 8

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

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

// Cast to Carbon instance and return
return \Carbon\Carbon::createFromTimeStamp($timestamp)->toFormattedDateString();
Run Code Online (Sandbox Code Playgroud)