iOS应用内购买-判断用户是否已购买的最佳方法

5

当用户在应用程序内购买时,我需要设置一个全局变量。我可以使用NSUserDefaults,并只是拥有一个名为“已购买”的键,但那似乎不太安全。

什么是最好的方式来安全地存储数据,以便我知道用户是否已经购买了产品?

例如,在特定视图中,我需要知道是否显示“购买”按钮。 如果他们已经购买,显然应该隐藏它。

2个回答

3

我认为这对iOS没有帮助。 - soleil
1
当然可以。钥匙串存在于iOS上,是存储数据最安全的本地方式。用户无法轻易编辑此数据,因此将数据存储在钥匙串中是最好且最安全的方法。 - C0deH4cker

0

不需要存储那些信息。 有一种方法可以恢复所有用户购买。 查找restoreCompletedTransactions

您可以在视图中检查所有用户的购买,然后为仍然可以购买的所有物品显示“购买”按钮。

更新:

哦! 我误解了你的问题。 以上方法将帮助您获取用户在重新安装应用程序时所做的购买。 关于您的问题,完全可以将与已购买产品相关的信息存储在NSUserDefaults中,以向用户提供他已经支付的货物、等级或其他内容。

我建议使用this逐步教程,它帮助我实现应用内购买来回答您所有的问题。


即使用户没有连接到互联网,这个会起作用吗? - soleil
不,它不会,但用户无法购买任何东西或检索其他信息,例如价格,因此显示可以购买的物品没有意义。如果没有互联网连接,只需通知用户并保持按钮禁用即可。 - Xavi Gil
是的,但如果他们某一天购买了商品,然后过了一段时间再回到应用程序时没有网络连接,界面仍应能够向他们显示他们已经购买了该商品,并允许他们使用新功能。我必须想办法存储这些信息。 - soleil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接