2013-07-11 59 views
5

我發展,支持自動更新收據的應用程序,並將其保存在服務器上,這是所有工作的偉大,直到用戶恢復他們的購買 - 這會導致重複。保存/恢復自動更新收據沒有重複

transaction_id字段對於每次恢復時的相同收貨是不同的,並且original_transaction_id在每次續訂時顯然都是相同的,所以我不能使用它。 unique_identifier字段也是一樣的(我不明白它是如何獨特的)。 使用web_order_line_item_id場我一直和它看起來很好,但我只是測試這一個完全新的帳戶,並結束了一個重複的,所以這是沒用的了。

我失去了一些東西真的很明顯嗎?每個收據必須有一個唯一的字段,但每次收到時都不會更改?

+0

既然你收據保存到服務器,你爲什麼不只是獲取從服務器接收呢? – rocky

+0

我爲大多數使用情況做了,但我需要允許用戶在新的或恢復的設備上恢復購買。 –

+0

我假設您有某種與您的自動續訂訂閱相關的登錄信息。而且我還假設您將登錄與您在服務器上保存的收據相關聯。考慮到這一點,無論設備是新的還是恢復的都無所謂。每當用戶登錄時,您都可以查詢服務器的收據並將其退回。我的假設錯了嗎? – rocky

回答

3

顯然original_transaction_idpurchase_date是恢復購買之後不會改變的只有兩個唯一值。您還可以依賴latest_receipt_info -> web_order_line_item_id,因爲它在恢復之間不會更改(與latest_receipt_info -> transaction_id不同)。通過檢查latest_receipt_info,你可以找到訂閱的expiration_date,這顯然蘋果認爲應該足夠你。