簡體   English   中英

iOS中的耗材與非耗材

[英]Consumable vs. non-consumable in iOS

我們是三個人,他們為iPhone制作了一款免費游戲 ,已經在App Store上推出了近一年。

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

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

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

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

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

這樣您就可以將兩個帳戶升級為高級帳戶,但只需一次購買即可。

Apple的論點是,如果設置了新設備或設備已恢復,我們的用戶需要能夠恢復購買。

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

所以我的問題基本上就是。 當我們選擇使用消耗品而不是非消耗品時,我們完全錯了。 如果是這樣,為了(可能)在同一設備上使用不同的游戲帳戶多次購買非消耗品,應如何實施?

其次,如果我們對消費品應用程序內購買的使用是正確的,那么我們應該說服蘋果,我們走在正確的道路上?

如果您的高級帳戶是您的用戶必須只購買一次,那么Apple肯定會要求您切換到非消費類應用程序。

您描述的場景很可能(我也必須面對它)但如果您在解鎖高級功能(保存與用戶關聯的所有交易)之前添加應用內收據的服務器端驗證,您有機會驗證購買是新的或恢復的,檢查收據數據中的字段original_transaction_idoriginal_purchase_date 通過這種方式,您可以查看恢復購買的用戶是否與最初購買的用戶相同(可能會檢查其Facebook用戶ID)。

無論如何,經驗告訴我,這種情況發生的可能性並不高,我不建議實施此檢查(盡管服務器端驗證幾乎總是必須的;-))

根據應用程序內購買編程指南的“恢復事務”部分

如果您的應用程序支持必須可恢復的產品類型,則必須包含允許用戶恢復這些購買的界面。

如果您的應用包含非消耗品購買,並且如果您不包含恢復按鈕,則Apple將不會批准您的應用。

這是2012年6月之后蘋果所必需的。

所以回答你的問題:不,似乎你必須使用restoreCompletedTransactions

希望它能幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM