2014-02-19 41 views
1

提供我非易耗品內容不購買之後,但在需求,每當用戶想下載的內容立即發生。服務器也有收據驗證程序,所以我需要保存收據以便稍後向服務器顯示驗證和內容下載。堅持交易​​收據

我知道,適用於iOS 7.0我沒有購買發票,因爲我的IAP購買收據位於應用程序收據本身,這是不難分析和獲取信息。

但是對於iOS 6.1或更早版本,我可以在NSUserDefaults中保存事務的收據,以便稍後當我需要從自託管服務器下載某些內容時,我可以使用該收據驗證服務器上的特定下載那麼服務器會發送給蘋果)?存儲收據是否合法,安全和普遍?

回答

2

我敢肯定你已經通過下面的鏈接去

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html#//apple_ref/doc/uid/TP40008267-CH8-SW9

除此之外,我相信這是在節約的交易數據沒有問題。至於其保存在NSUserDefaults的,有一個問題與我能想到的:如果用戶刪除並重新安裝應用程序,或者買了新手機,數據不會被存儲在設備上。因此,以自己託管的服務器以某種方式保存收據會更好。對於預iOS7設備,鏈路提到了這種技術:

「如果你需要提前支持的iOS版本的iOS比7,在應用程序收據不可用,恢復完成的交易,而不是」。

+0

因此,如果有人將'NSUserDefaults'偷收據,他可以將它發送到我的服務器,並下載我試圖保護內容。或者我錯過了什麼?此外,我不明白在我的服務器中保存收據背後的邏輯。那麼我應該保持什麼設備?從設備到服務器發送什麼信息以確保提供的內容得到認證?我會很感激你的想法。 – Pablo

+0

我不認爲任何人都可以真正竊取收據,因爲畢竟他們連接到特定用戶的蘋果ID。除此之外,因爲您的非消費品是按需交付的,所以我假設您也將每個用戶的購買數據保存在您的服務器上。當您將收據保存在服務器中時,無論用戶什麼時候嘗試實際下載內容,都可以檢查與該內容相關的收據,作爲您的附加安全層。這是我建議將它保存在服務器上的唯一原因。 –

+0

即使收到連接到蘋果ID,只有收據數據(使用IFUNBOX被盜,即使設備沒有越獄)會給壞人的機會將其發送到我的服務器進行身份驗證。不,我根本不保留購買信息。我的服務器僅用作設備和Apple驗證服務器之間的代理服務器。我明白你的意思,只需通過驗證購買日期和其他字段來檢查收據是否有效。但是,當收據本身被盜時,我們仍然會首先提出問題。可下載的內容甚至可以從iDevice下載,但可以從PC下載,使用HTTP(S)請求。 – Pablo