Доступ к данным счета с подпиской в ​​Recurly PHP API

Я работаю с API Recurly PHP и пытаюсь найти способ выяснить, есть ли у подписки просроченные счета, следовательно, подписка просрочена (даже при наличии просроченных счетов состояние подписки не изменяется и по-прежнему отображается как активное).

Для доступа к подписке я использую:

try{
$subscriptions = Recurly_SubscriptionList::getForAccount('1');
foreach ($subscriptions as $subscription) {
print $subscription;
}
}

Это возвращает:

activated_at="2014-10-08 13:18:27 +00:00",
collection_method="manual",
currency="USD",
current_period_ends_at="2014-11-08 14:00:00 +00:00",
current_period_started_at="2014-10-08 14:00:00 +00:00",
invoice=,
net_terms=0,
plan="",
quantity=120,
state="active",
subscription_add_ons=[],
trial_ends_at="2014-10-08 14:00:00 +00:00",
trial_started_at="2014-10-08 13:18:27 +00:00",
unit_amount_in_cents=500,
uuid="VALUE"

Внутри $ subscription есть счет, но он пуст, если я использую:

print_r($subscription->invoice);

это возвращает:

Recurly_Stub Object ( [objectType] => invoice [_href:protected] => https://subdomain.recurly.com/v2/invoices/1004 [_client:protected] => [_links:protected] => Array ( ) )

Счет 1004 является просроченным, поэтому я хочу показать, что подписка просрочена, но я не могу получить доступ к значению _href: protected и не вижу другого способа определить, содержит ли подписка просроченные счета?

Кто-нибудь знает альтернативный способ узнать, содержит ли подписка просроченные счета или, если это не удалось, как я могу получить доступ к _href: protected, чтобы я мог хотя бы затем запустить API get invoice API для проверки счета?

1

Решение

Короткая версия, вы должны позвонить $subscription->invoice->get(), $subscription->invoice возвращает Recurly_Stub объект, и вам нужно будет вызвать его get() способ заставить его загрузить весь объект.

Мы документировать это но ясно, что у нас нет этого в правильном месте.

Отступая, вы можете обнаружить, что быстрее получить все просроченные счета Recurly_InvoiceList::getPastDue() и поищите их подписки.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]