首页 > 解决方案 > laravel 收银员 Braintree 到期日期

问题描述

我正在使用"laravel/cashier-braintree": "~2.0"包来管理我的Laravel 5.5.40应用程序中的订阅。

到目前为止,我已经创建了一个计划并通过多个用户创建了对该计划的订阅。我只是找不到为用户获取计划到期日期的方法。

根据这个laracast 讨论,表中的 ends_at 列subscriptions默认保持为空,直到用户取消订阅。

我确实尝试了该Customer::find($braintree_id)方法并获得了一个巨大的客户详细信息对象,其subscriptions对象如下:

"subscriptions": [
      {
        "addOns": [],
        "balance": "0.00",
        "billingDayOfMonth": 20,
        "billingPeriodEndDate": {
          "date": "2018-09-19 00:00:00.000000",
          "timezone_type": 3,
          "timezone": "UTC"
        },
        "billingPeriodStartDate": {
          "date": "2018-06-20 00:00:00.000000",
          "timezone_type": 3,
          "timezone": "UTC"
        },
        "createdAt": {
          "date": "2018-06-20 10:06:42.000000",
          "timezone_type": 3,
          "timezone": "UTC"
        },
        "updatedAt": {
          "date": "2018-06-21 05:56:43.000000",
          "timezone_type": 3,
          "timezone": "UTC"
        },
        "currentBillingCycle": 1,
        "daysPastDue": null,
        "discounts": [],
        "failureCount": 0,
        "firstBillingDate": {
          "date": "2018-06-20 00:00:00.000000",
          "timezone_type": 3,
          "timezone": "UTC"
        },

那么有没有更好的方法来获取计划订阅到期日期?

标签: laravel-5.5braintreelaravel-cashier

解决方案


全面披露:我在布伦特里工作。如果您还有其他问题,请随时联系支持人员

现在订阅响应对象不包含返回的关于订阅结束日期的属性。currentBillingCycle您可以从中减去numberOfBillingCycles以了解订阅何时结束。我建议首先检查是否neverExpires返回true以查看是否有结束日期。

例如,如果 的numberOfBillingCycles值为12currentBillingCycle4,则剩余的计费周期数为8


推荐阅读