2014-10-09 77 views
1

我正在使用Recurly PHP API,並試圖找出一種方法來查明訂閱是否有逾期發票,因此訂閱過期(即使有過期的發票訂閱狀態不會改變,仍然顯示爲活動狀態)。在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" 

在$訂閱發票卻是空白的,但是,如果我使用:

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:受保護的值,並且無法查看任何其他方式來確定訂閱是否包含過期發票?

有沒有人知道另一種方式來判斷一個訂閱是否包含過期發票,否則我該如何訪問_href:protected,這樣我至少可以運行get invoice API來對發票進行檢查?

+0

親愛的bhttoan,如果你已經完成了更新,請更新。我也在嘗試。 – sariDon 2014-10-20 08:03:22

+0

@sariDon給我回答一下。猜測你現在已經明白了。 – drewish 2014-11-24 22:25:04

回答

4

短版本是你應該撥打$subscription->invoice->get()$subscription->invoice會返回一個Recurly_Stub對象,您需要調用其get()方法強制它加載完整對象。我們document this但很明顯,我們沒有在正確的位置。

儘管如此,您可能會發現獲取所有逾期發票Recurly_InvoiceList::getPastDue()並查找其訂閱會更快。