2012-06-25 64 views
5

我需要在用戶進行應用內購買時設置全局變量。我可以使用NSUserDefaults,只需要一個名爲「Purchased」的密鑰,但這看起來並不安全。iOS應用內購買 - 告訴用戶是否購買的最佳方式

什麼是安全存儲數據的最佳方式,以便我知道用戶是否進行了購買?

例如,在特定視圖中,我需要知道是否顯示「購買」按鈕。很明顯,如果他們已經購買了它,它應該被隱藏起來。

回答

3

對於安全數據,您應該使用iOS鑰匙串。這裏的文檔:

http://developer.apple.com/library/mac/#documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

希望這有助於。

+0

我不認爲這對iOS有幫助。 – soleil

+1

當然可以。鑰匙串存在於iOS上,它是存儲數據的最安全的本地方式。用戶將無法輕鬆編輯這些數據,因此將數據存儲在鑰匙串中是最好和最安全的方法。 – C0deH4cker

0

沒有必要存儲該信息。有一種方法可以恢復所有用戶購買。尋找restoreCompletedTransactions

您可以檢查所有用戶在您的視圖中的購買,然後顯示所有仍然可以購買的物品的「購買」按鈕。

UPDATE

哦!我誤解了你的問題。上述方法將爲您提供用戶爲重新安裝應用程序而進行的購買交易。關於您的問題,在NSUserDefaults中存儲相關購買產品的信息是完全正確的,以便爲用戶提供商品,級別或他已付款的任何內容。

我推薦this一步一步的教程,幫助我實施應用內購買來回答你所有的問題。

+0

即使用戶沒有連接到互聯網,這項工作是否可行? – soleil

+0

不,不會,但用戶將無法購買任何物品或檢索任何其他信息,例如價格,因此沒有必要顯示可以購買哪些物品。如果沒有互聯網連接,只需通知用戶並禁用您的按鈕。 –

+0

是的,但是如果他們有一天進行購買,並在一段時間後回到應用程序並且沒有連接,那麼界面應該仍然能夠向他們展示他們已經進行了購買並允許他們使用新功能。我必須能夠以某種方式存儲。 – soleil