17

我通过 Laravel 的 Cashier 包为用户订阅了订阅计划。我现在想显示用户下一次计费的日期,但是这似乎不能通过 Billable 特征获得。

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

4

3 回答 3

17

解决方法是使用以下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].

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

于 2017-01-11T09:37:48.697 回答
10

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

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

// Cast to Carbon instance and return
return \Carbon\Carbon::createFromTimeStamp($timestamp)->toFormattedDateString();
于 2017-12-24T18:00:29.220 回答
10

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

private function getSubscriptionRenewDate($plan)
{
    $sub = Auth::user()->subscription($plan)->asStripeSubscription();
    return Carbon::createFromTimeStamp($sub->current_period_end)->format('F jS, Y');
}
于 2018-01-26T21:17:12.617 回答