對於有關iTunes訂閱的第100個問題抱歉,但我仍然有一些疑問。在應用程序自動更新訂閱
基本上我在我的應用程序中實現了自動更新訂閱,我想確保自己的答案正確。下面是步驟列表拿,我想出了:
- 每當用戶購買訂閱,發送回執到服務器,以驗證它
- 如果收據是有效的,將其保存在數據庫
- 應用負載,要求服務器如果收到這個UDID存在(這是要弄清楚,如果用戶有一個有效的訂閱)
- 如果是這樣,檢查是否有EW項目已被添加在商店中的日期範圍從認購起始日期爲到期日
- 如果有的話,通知大約在某種程度上這些項目中的用戶並將其標記爲可免費下載的
- 如果是這樣,檢查是否有EW項目已被添加在商店中的日期範圍從認購起始日期爲到期日
這些步驟是否正確?如果是這樣,爲什麼蘋果的文檔說:
在大多數情況下,您的iOS客戶端應用程序不應該需要改變。事實上,您的客戶端應用程序現在變得更簡單了,因爲您可以使用相同的代碼來恢復自動更新訂閱,就像恢復非消費品產品一樣。這在「恢復事務」中進行了描述。您的應用程序在續訂訂閱的每個時間段都會收到單獨的事務;你的申請應該分別驗證每個收據。
對我來說,它看起來像這樣需要一些代碼來處理所有我所提到的各種情況,來代替。或者我完全錯了。我是嗎?
另外,我怎麼知道訂閱到期日?我找不到在任何地方獲取這些信息的方法。我應該保存在我自己的數據庫?
更新:
,因爲我張貼了這個問題,我已經想通了幾件事情。如果我錯了,隨時糾正我。
首先,我想我應該在自己的數據庫中存儲訂閱的長度,因爲正如蘋果公司的文檔所述,您無法通過Apple的Web服務以任何方式檢索它。實際上,每個訂閱長度都有不同的產品標識符,因此您應該有辦法將產品標識符轉換爲訂閱長度。
另外,Sylvian has posted有關他實施自動更新訂閱的詳細信息,所以至少我知道我的想法沒有太多缺陷。
現在唯一的問題是:我怎麼知道用戶有一個有效的訂閱?我可以將這些信息存儲在我的服務器上,是的,但是如何將用戶與完成的交易相關聯?我應該保存設備的UDID嗎?
你應該檢查出deforums.apple.com而不是問題。沒有人知道答案,但開發人員正在這裏討論它, – honcheng 2011-03-17 00:35:52
@honcheng我張貼在這裏,因爲我找不到答案。 – pt2ph8 2011-03-23 11:58:14
我正在努力解決完全相同的問題,最重要的是識別'同一用戶 - 其他設備'。你有沒有進一步與此? – 2011-04-12 11:38:31