应用内购买使用设备令牌或Apple ID

时间:2014-09-18 09:44:42

标签: ios objective-c iphone in-app-purchase

我正在我的应用中实施应用内购买,并测试现有应用以获得一些想法。但我发现了一个我很困惑的场景。

我已经安装了iOS应用并购买了特定级别。稍后我卸载这个应用程序,从现有的iTunes商店帐户退出并再次使用另一个苹果ID登录,然后重新安装该应用程序(相同的应用程序)。在这里,我可以再次购买特定级别。但我的疑问是我们可以根据购买Apple ID或设备令牌使用的应用内购买方式吗?

如果用户可以使用Apple ID购买,那么用户可以使用他们无需再次购买的其他设备登录,但是一个用户可以购买应用,用户可以登录其他用户设备是一个问题..!为什么因为另一个用户无需购买。

如果我们设置设备令牌,基于应用内购买用户只能登录该设备,他们无法登录具有相同Apple ID的其他设备,这是一个问题。

我对它很困惑...如果我们在同一台设备上使用多个苹果ID,那么购买的物品也会绑在设备上吗?

据我所知,我可以使用相同的苹果ID在不同的设备上恢复我购买的商品。但是多个设备上的多个苹果ID怎么样?如果我在设备上有2个苹果ID,我使用其中一个购买的项目,但后来我使用这2个苹果ID登录到另一个设备,我还需要再次付款才能下载我在之前的设备上购买的项目吗? / p>

如果我的问题不明确,请告诉我...我希望有人可以就不同设备和苹果ID分享购买的商品给出一些想法。哪一个使用应用内购买。

欢迎提出任何建议和意见。非常感谢。

2 个答案:

答案 0 :(得分:1)

IAP分为两类 - 消耗品和非消费品。

非消耗品购买(游戏的购买级别10-15,升级到专业版等)由系统跨设备同步,并由系统恢复。它们与Apple ID相关联。

消费品购买(购买5个金币)未同步或恢复。您的应用程序需要记住已完成购买,并存储有关该应用程序的信息,以便正确备份和还原以恢复用户的状态。如果用户卸载然后重新安装,他们就会丢失任何以前的耗材购买(但他们将保留所有非耗材购买,并且您的应用程序可以查询这些)。当然,您可以将有关消耗品购买的所有信息同步到您自己的服务器,但您需要让用户为您创建一个帐户。这将允许您在设备之间同步耗材。

设备ID(无论如何都无法获得)与此无关。

有关详细讨论,请参阅https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Products.html

答案 1 :(得分:0)

如果IAP是非消耗品(或自动更新),则用户可以“恢复”它们(即应用程序将执行restoreCompletedTransactions或refreshReceipt)。我相信restoreCompletedTransactions(或refreshReceipt)所需的用户名/密码登录名必须与将应用程序下载到设备上的用户/密码相同。鉴于这一要求,我仍然认为,单个“购买者”可以在许多设备上共享他们单次购买非消耗性IAP。