2015-04-14 52 views
2

我在更新我的應用程序的新iOS7/8應用程序內購買庫的過程。我現在看到,從iOS7開始,我們有權訪問appStoreReceiptURL作爲NSBundle的一部分。在iOS7/8中使用給定appStoreReceiptURL的restoreCompletedTransactions的任何理由?

看來我可以訪問此網址,其伴隨的數據,在任何時間,沒有互動或與SKPaymentQueue接口。

以前,當客戶安裝了我們的應用程序並希望恢復其應用程序內訂閱時,該應用程序將調用restoreCompletedTransactions方法[SKPaymentQueue defaultQueue],並從中獲取收據信息,一次一個事務,應用程序將上載一次向我們的服務器發送一筆交易。

但是,在iOS App Store沙箱中測試時,現在我似乎能夠從[[NSBundle mainBundle] appStoreReceiptURL]獲取一份主收據數據,將其上傳到我的服務器,獲取此用戶的每個應用內事務的完整歷史記錄已經完成並在適當情況下在我的服務器上記錄事務並將通知發回給我的客戶。

因此,爲什麼或什麼時候會有人需要調用restoreCompletedTransactions?在我的應用中,我出售了一個自動更新應用內訂閱;今天在iOS7/8中還有其他使用情況,對此API有幫助嗎?

回答

1

如果用戶已經做出了不同的設備上購買,也可以是有用的(或需要)「恢復」的新設備上購買。 restoreCompletedTransactions可以啓用此恢復操作。默認情況下,在這個新設備上,我認爲> = iOS7樣式收據不會有這些先前的購買。在> = iOS7上,SKReceiptRefreshRequest在很多情況下都可以使用。

從蘋果:

在大多數情況下,你的應用程序需要做的全部是刷新其接收和 在其收到交付的產品。刷新收到包含用戶在此應用內購買,該設備或任何其他 設備上的 記錄。然而,一些應用程序需要採取另一種方法 由於以下原因之一:

如果您使用蘋果託管的內容,恢復完成的交易 給你的應用程序中的交易對象,它使用下載 內容。

如果您需要支持應用程序收據不可用的早於iOS 7, 的iOS版本,請改爲完成事務 。

如果應用程序使用非更新訂閱,您的應用程序是 負責恢復過程。

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

相關問題