2015-02-08 142 views
1

我創建了一個應用程序,它是一個付費應用程序。現在我想讓它免費,讓更多的用戶可以下載應用程序並在應用程序購買中使用,以限制某些功能。但是一些用戶已經付款購買我的應用程序。如何在新用戶的應用程序購買中同時實現對舊用戶的全功能訪問?支付應用程序的iOS應用程序內購買

+1

請添加新的標籤,無論是用於Android還是iOS。任何人都可能會感到困惑。 – 2015-02-08 04:41:13

+0

謝謝大家。幸運的是,我只是推出我的應用程序幾個星期。用戶還沒有太多。所以,我想我會在一段時間內免費購買應用內購買,並讓當前用戶免費購買。並更改下一版本更新的價格。謝謝 – 2015-02-15 05:17:05

回答

0

如果您連接到服務器以註冊用戶信息,則始終可以創建一個在應用程序啓動時執行的API,以驗證該用戶是否是完全訪問用戶。

但我恐怕你的情況不是上述情況。

在這種情況下,您需要將您的數據(在此上下文中的某些加密密鑰)與iCloud同步,並且在啓動應用程序時,您可以驗證用戶的類型。

與包含設備格式場景的鑰匙串相比,在iCloud中使用數據更安全。但絕對不是萬無一失的。

其他解決方案可以使用Apple Purchase Receipt來驗證以前購買的版本。但是這僅在iOS7以後才支持。

Checkout的開源庫,瞭解收據解析: https://github.com/rmaddy/VerifyStoreReceiptiOS

所以結合多種策略是你的問題的唯一答案。

0

這是一個簡單的例子,但是如果您正在服務器上使用數據庫(而不是電話本身),那麼您是否可以爲每個計劃銷售的功能使用布爾值,並且只需設置該布爾值對於當前在數據庫中的所有用戶均爲true。這是假設真的意味着他們已經購買了這個功能,而假意味着他們沒有購買它。 在發佈更新後的應用程序後,您可以運行此查詢一次,然後每個用戶對這些要銷售的功能的默認值爲false。

+1

感謝@ kacy,這是一個快速解決方案。但是,如果用戶刪除了應用程序並稍後重新安裝。我不知何故需要提供一種方法讓他們恢復購買,對吧?這是我不知道該怎麼做的部分。對不起順便說一下,我正在談論iOS。謝謝 – 2015-02-08 04:57:30

+0

@CkwCfm如果用戶刪除了應用程序,您仍然可以在數據庫中爲用戶存儲此信息。當用戶重新安裝應用程序時,您可以使用存儲在數據庫中的信息。 – Kacy 2015-02-08 14:37:50

+0

混淆可能是因爲我認爲從答案中可以看出,你的意思是服務器上的數據庫而不是iPhone應用程序中的數據庫。 – 2015-02-08 19:35:12

0

這種情況沒有完美的解決方案。

建議1:

推出最後一個付費更新。在此更新中,使用鑰匙串來存儲這些IAP標誌。然後在免費版本中,檢查鑰匙串中的這些標誌。即使應用程序被刪除並在稍後使用免費版本重新安裝,這也可以工作。但是,如果設備正在被完全重置,無論是由於某些iOS版本更新還是用戶的原因,除非涉及備份和恢復,否則它將無法正常工作。

建議2:

不是一個建議。但是我已經看到AppStore上的類似應用只是推出免費版本。然後,應用程序發生了來自以前用戶的糟糕評論!

1

您可以通過閱讀App Store receipt來做到這一點。收據包含原始購買的版本號和日期。

有兩個主要的注意事項:第一,這隻適用於iOS 7及以上版本。其次,蘋果公司不包括分析收據的代碼(所以用戶破解我並不太容易理解)。然而,還有onen源庫,儘管使用普通的庫會比較安全。

相關問題