由于恢复IAP,Apple拒绝了我的应用程序

Mad*_*huP 8 iphone in-app-purchase ios

我有一个恢复按钮.问题是,如果他们没有"完成恢复,并且他们尝试购买物品,并且他们已经购买了该物品,我需要告诉他们他们已经购买了它而不进行购买.所以我需要一种方法来知道他们购买了哪些物品,而不进行恢复.我试图在用户试图购买时首先进行恢复,但苹果拒绝了我的应用.他们表示,在显示"确认应用程序内购买"对话框之前,无法进行还原.

请帮我找到正确的方法.

提前致谢.

Ush*_*n87 6

您可以将这些数据保存在NSUserDefaults中.而且您不需要显示警告说已经购买了这些物品.如果它的非消费品苹果显示警告说他们已经购买了该物品!

编辑:

1)您需要在视图中添加3个按钮

  • 买按钮
  • 恢复按钮
  • 演示版

如果您在应用中支持应用内购买,则需要为用户提供还原选项.否则Apple将拒绝您的应用.

2)如果用户按下购买按钮,请不要检查用户是否已经购买了您的应用程序.因为Apple不会向用户收取两次相同的非消费品.所以只需查看您的购买代码,如果用户已购买它,Apple的StoreKit框架将调用它的委托方法

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
Run Code Online (Sandbox Code Playgroud)

SKPaymentTransactionStatePurchased

交易状态.所以你可以给他登录屏幕.

3)如果用户按下恢复按钮,则只需执行恢复代码

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)

并且在第二步中它将调用具有相同事务状态的委托方法.因此,您可以向用户显示登录页面.

4)如果用户按下演示版按钮,请向他演示演示版.

5)如果用户购买了您的应用程序,将其删除,如果他重新安装,请将其视为新用户.向他展示这3个按钮,用户可以恢复购买,然后您可以向他显示登录页面.

6)如果您确实需要跟踪是否在确切的设备上购买应用程序,那么您可以使用钥匙串存储您的数据,因为即使应用程序已卸载或已删除,也不会删除钥匙串项目.这个Api会帮助很多链接,看看

要么

您可以参考Apple 关于Keychain数据的文档