2011-10-12 3044 views
22

我不太明白這個想法。 我必須爲用戶提供還原按鈕嗎? 這個方法應該調用什麼方法? 恢復將會做什麼?應用內購買中的「恢復購買」是什麼意思?

+3

基本上,如果你刪除的應用,移動到一個新的手機,無論如何,您的購買將不再在該設備上可用。還原購買會向iTunes詢問您已付款的可用應用內購買項目。你應該提供一個恢復按鈕,我不確定是否需要它,但它肯定是建議的。您應該閱讀應用程序購買中的文檔,以便更清楚地瞭解購買/恢復事務的哪一部分是您的責任,哪一部分是Apple的責任。 –

+1

我不是iPhone的專家,但從使用經驗,如果你有應用內購買,這種方法應該恢復用戶從你的應用購買的所有東西,當然你會用他們是蘋果ID /帳戶識別。 – 2011-10-12 09:50:08

回答

29

您通常使用此代碼恢復購買:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

它將觀察者(個),所購買的物品重新調用-paymentQueue:updatedTransactions。這對刪除後重新安裝應用程序或將其安裝在其他設備上的用戶非常有用。

並非所有類型的應用內購買都可以恢復。

+0

是不是有類似的應用程序重購?它不是提示類似的「你已經購買,所以你可以免費下載」?我沒有這樣的經歷。 – Geri

+1

爲了向用戶提供這種體驗,應用開發人員不需要實現這一點 - 但它相當簡單(只需一行代碼)。 – Felix

+0

當用戶沒有進行任何購買時,我無法捕獲任何委託方法,並命中恢復。商店得到處理,但在這種情況下沒有方法被調用(只有paymentQueueRestoreCompletedTransactionsFinished :,但它也會在成功恢復時被調用)。所以現在怎麼辦?我會爲此設置一個問題。 – Geri

2

它是可選功能。

如果在用戶嘗試購買非易失性產品時您不提供它,AppStore將恢復舊的事務。但是你的應用會認爲這是新的交易。

如果您將提供恢復機制,那麼您的採購經理將看到恢復的交易。

如果應用程序應該區分這個選項,那麼您應該提供恢復以前購買的產品的功能。

+0

這不是應用程序商店應該處理的內容嗎? – 2011-10-12 09:53:26

+0

AppStore處理這個問題,正如我在文章中所說的那樣。應用只會看到不同類型的交易。 – Nekto

+0

是不是有類似的應用程序重購?它不是提示類似的「你已經購買,所以你可以免費下載」?我沒有這樣的經歷。 – Geri

6

僅當您已註冊inApp購買的產品可能屬於非續訂訂購和易損件產品類別時,您纔會收到來自蘋果的拒收訊息。這些類型的產品不會自動更新。你需要在你的應用程序中有明確的恢復按鈕。

對於其他類型的產品它會自動恢復它。

請閱讀下面的文字,這將清楚這一點你的概念:

一旦交易已被處理,並從隊列中刪除,你 應用程序通常不會再看到它。但是,如果您的應用程序 支持必須可恢復的產品類型,則必須包含一個允許用戶恢復這些購買的界面 。該接口 允許用戶將產品添加到其他設備,或者如果原始設備被擦除,則恢復原始設備上的事務。

Store Kit提供了內置功能,用於恢復 非消耗品,自動更新訂閱和免費訂閱 的交易。要恢復交易,您的應用程序將調用 付款隊列的restoreCompletedTransactions方法。支付隊列 向App Store發送請求以恢復事務。在 返回中,App Store爲以前完成的每個 事務生成一個新的恢復事務。恢復事務 對象的originalTransaction屬性包含原始的 事務的副本。您的應用程序會通過 處理恢復交易,並檢索原始交易並使用它來解鎖購買的內容。 Store Kit恢復之前的所有事務 後,它會通過調用付款隊列觀察員的 paymentQueueRestoreCompletedTransactionsFinished:方法通知付款隊列觀察員。

如果用戶嘗試(使用你實現的恢復界面,而不是 )購買可恢復的產品,應用程序接收 一個普通的事務針對該項目,而不是恢復交易。 但是,用戶不會再爲該產品付費。您的 應用程序應將這些交易視爲原始交易的 。不更新訂閱和消耗品 產品不會被Store Kit自動恢復。但是,不更新 訂閱必須是可恢復的。要恢復這些產品, 您必須在自己的服務器上記錄交易時,他們 購買,並提供自己的機制,以恢復這些交易 到用戶的設備

+0

您是否知道在以下情況下不需要恢復時會發生什麼情況: 用戶能夠在他的設備上下載應用程序,並且該應用程序可以通過使用不同的憑證登錄來使用多個用戶。如果用戶Bill使用他的憑證登錄併購買僅爲其憑據購買的應用程序。如果後者喬用他的憑據登錄,他應該再次購買。如果Bill登錄任何其他設備,他應該可以享受完整的應用程序。應用功能取決於服務器返回的數據,而不是其他資產。 謝謝! – zvjerka24

+0

@ zvjerka24 - 是非常相同我想在我的應用程序,然後我必須使用什麼IAP? – 2014-02-03 06:27:24