【问题标题】:How to check already purchased InApp purchases on ios如何在ios上查看已经购买的应用内购买
【发布时间】:2013-02-12 11:58:36
【问题描述】:

我正在使用 InApp 购买,所以我已经实现了一个工作模型,我已经参考了这个

链接http://xcodenoobies.blogspot.in/2012/04/implementing-inapp-purchase-in-xcode.html.

在这里,当用户购买商品时,我会在 KeyChain 中存储一些值,并与此值进行交叉检查以确认用户已购买该商品,如果没有,我将要求用户购买项目。

这可行,但是我有4种产品可供购买,可以单独购买,所以我想创建不同的KeyChain实例 并为这4个产品存储不同的密码和交叉校验,但keyChain只能保存一个用户名和密码。

所以我想知道什么可以替代这个。另外 NSUserdefaults 将不起作用,因为它与 App 捆绑包绑定,并且每当用户删除应用程序时,数据都会丢失等等他将被要求再次购买。

问候 兰吉特

【问题讨论】:

  • 首先,您的应用程序中应该始终有一个“恢复购买”按钮。这是一个非常开放的问题,您可以考虑将所有购买信息存储在一个密码中(nnnn 意味着没有购买任何产品,ynnn 意味着只购买了第一个产品等等......)但这不是一个优雅的解决方案。我建议你还是使用 NSUserDefaults
  • 但是如果你在删除应用的时候使用NSUserDefaults,里面的数据会被抹掉
  • 这就是为什么你应该有一个恢复按钮,StoreKit 有让你轻松做到这一点的方法。在另一个场景中,假设您使用 Keychain,而用户购买了一部新 iPhone,那么呢?
  • 所以你的意思是他们不需要 KeyChain 或 NSUserdefaults 对吧?
  • 仍然需要 NSUserDefaults,因为如果您不使用它,用户每次打开应用程序时都需要恢复购买。

标签: ios ios5 in-app-purchase


【解决方案1】:

如果您要添加可恢复的应用内购买(不可更新订阅、免费订阅或非消耗品),那么 Store Kit API 已经为您提供了“恢复交易”功能:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html

在您的 UI 中,您需要在调用restoreCompletedTransactions 方法的产品屏幕上添加一个“恢复购买”按钮。这很重要,因为如果您不提供此按钮,Apple 可能会拒绝您的应用。

【讨论】:

  • NSUserDefaults 在卸载应用程序时被擦除。钥匙串是安全的,但它与设备绑定,而不是用户帐户(同一个用户帐户可能在多个设备中)。如果您想存储收据。将其存储在您的服务器或 iCloud 中。
  • 嗨@Daniel Martin,我正在测试应用内购买,我购买了一件商品,然后我删除了该应用并再次重新安装它。现在当我点击恢复按钮时,它要求输入密码,输入密码后,什么也没有发生。我是否遗漏了什么?请帮帮我
  • 嘿@Daniel Martin,请看看这个stackoverflow.com/questions/14974833/…
猜你喜欢
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多