2013-04-20 58 views
7

我們是三個人,他們爲iPhone製作了一款free game,它已經在App Store上銷售了近一年。iOS中的消耗品與非消耗品

該應用程序是一款棋盤遊戲,您可以使用您的Facebook憑證創建用戶或登錄。您可以退出遊戲並使用其他帳戶重新登錄。

現在我們已經更新了應用程序,可以將用戶升級到高級用戶。允許個人和全球遊戲統計。

但是蘋果在審批過程中讓我們頭疼,並拒絕接受我們的應用內購買。首先他們不會批准它,因爲它沒有恢復按鈕。然後當我們告訴他們時,不需要恢復按鈕,因爲這是一項消耗品購買,他們現在要求我們將其更改爲非消耗品並添加恢復按鈕。

如果購買是非消耗品,請考慮這種情況。在

  1. 用戶登錄。
  2. 用戶升級帳戶溢價
  3. 用戶註銷。
  4. 用戶使用其他帳戶登錄。
  5. 用戶恢復以前的購買。

這將允許您升級兩個帳戶到溢價,但只需一次購買。

蘋果的觀點是,我們的用戶需要能夠恢復購買,如果安裝了新設備或設備恢復。

但是,這不是它的工作方式。用戶將其帳戶升級到高級帳戶。現在,當他們購買新設備或恢復現有設備時,他們只需使用其現有遊戲帳戶登錄,並且升級將可用,因爲我們在服務器端已將該帳戶標記爲高級帳戶。

所以我的問題基本上是。如果我們選擇使用消耗品而不是非消耗品,那我們是完全錯誤的。如果是這樣,那麼爲了(可能)在同一設備上用不同的遊戲賬戶購買一次非消耗品,應該如何實施非消耗品?

其次,如果我們正確地使用消費型應用程序內購買,我們應該怎樣說服蘋果說我們走在正確的道路上?

回答

4

如果您的高級帳戶是您的用戶只能購買一次的東西,那麼Apple絕對是要求您切換到非消費型應用內的權利。 (如果你在解鎖高級功能之前添加了應用內收據的服務器端驗證(保存所有與用戶相關的交易),你有機會獲得這個機會驗證購買是新的還是檢查收據數據中的字段original_transaction_idoriginal_purchase_date。通過這種方式,您可以查看恢復購買的用戶是否與最初購買的相同(可能檢查其Facebook用戶ID)。

不管怎樣,經驗表明我,這種情況發生的機率是不是真的很高,我不會建議實施此檢查(雖然服務器端驗證幾乎總是必須的;-))

+0

謝謝您的回答。我實現了這一點,它的工作。當用戶使用不同的用戶恢復購買時,現在會說購買屬於不同的賬戶。但。如果用戶按下購買,App Store將讓它再次「下載」,但免費。而且我無法趕上。 – Trenskow 2013-04-20 20:06:35

+0

我認爲這一點是要確定高級功能的「所有者」是否真的是您的用戶或Apple ID帳戶。我認爲,由於購買是由Apple進行的,因此它與Apple ID賬戶相關聯通常是安全的(這就是爲什麼我聲明我沒有在我的項目中實施此項檢查)。最後,是的,您可以將使用一個Apple ID進行的購買恢復到多個用戶帳戶,但是這種情況不是很常見 – andreagiavatto 2013-04-21 09:13:14

2

根據的In-App Purchase Programming Guide:

的「恢復交易」一節。如果您的應用程序支持的產品類型必須是可恢復的,則必須包含一個接口,使用戶能夠恢復這些採購。

如果您的應用包含非消費品購買,並且您沒有包含恢復按鈕,蘋果將不會批准您的應用。

這2012年6月後,已經取得了必要蘋果

因此,要回答你的問題:沒有,看來你必須使用restoreCompletedTransactions

希望它可以幫助你。

相關問題