我正在使用Recurly PHP API,并试图找出一种方法来查明订阅是否有逾期发票,因此订阅已逾期(即使有逾期发票,订阅状态也不会改变,仍然显示为活性)。
要访问我正在使用的订阅:
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 ( ) )
Invoice 1004是逾期发票,所以我希望能够显示订阅已逾期但我无法访问_href:protected值,并且看不到任何其他方式来确定订阅是否包含逾期发票?
有没有人知道另一种方法来判断订阅是否包含逾期发票,或者如果没有,我怎样才能访问_href:protected所以我至少可以针对发票运行获取发票API以进行检查?
答案 0 :(得分:4)
简短版本是您应该致电$subscription->invoice->get()
。 $subscription->invoice
会返回Recurly_Stub
个对象,您需要调用其get()
方法强制它加载完整的对象。
我们document this但显然我们没有把它放在正确的位置。
退一步说,您可能会发现只需获取所有过期的发票Recurly_InvoiceList::getPastDue()
并查找订阅费用就更快了。