1

我在应用商店有一个包含 2 次应用内购买的应用。现在我想更新我的应用程序,显然已经购买了我的应用程序内购买的人不应该再次付款。对于这些用户,它应该是免费的。我不知道我该怎么做。

有人可以在这里指导我吗?任何帮助将不胜感激。
谢谢你。

4

3 回答 3

3

您可以在应用程序中放置一个恢复按钮,用户可以从中恢复已购买的 IAP。我假设您为您的应用程序保留了非消耗性产品。所以,在那种情况下不用担心,它不会再次向用户收取购买费用。

于 2013-05-28T12:34:11.120 回答
1

您不仅需要调用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];,还需要实现恢复本身(我的意思是,向用户提供内容)。

于 2013-05-28T12:40:58.150 回答
1

当用户购买某些商品 (IAP) 时,应用程序应通过 NSUserDefaults 将购买该商品的状态保存在 plist 中。我认为这是执行此操作的标准方法,并且可能是您所做的,不是吗?

因此,每个用户都有 App 文件和一个 plist(包含您要在会话之间保存的所有值,包括可购买项目的状态)。当应用程序有更新时,应用程序文件被替换,但据我所知plist没有改变。我还没有进行过更新,但是在 H2CO3对此答案的评论中是这样说的(请注意,H2CO3享有很高的声誉)。因此,您可以更改应用程序,但如果您不更改 NSUserDefaults 存储此购买状态并在新会话开始时检索的方式,那么您应该没问题并且更新的用户将拥有已经购买的物品。另一方面,如果用户删除并重新安装应用程序而不是更新,那么他将丢失 plist,并且恢复项目的唯一选择是通过恢复,正如其他答案所指出的那样。

于 2013-05-28T15:19:54.700 回答