应用内购买无恢复按钮导致被拒绝。

22
我正在使用非消耗品的应用内购买实现一个应用程序,但苹果驳回了它,并且原因是:
我们发现您的应用程序提供可以恢复的应用内购买,但它没有包括“还原”功能,以允许用户还原之前购买的应用内购买。为了恢复之前购买的应用内购买产品,应该提供“还原”按钮,并在点击“还原”按钮时启动还原过程。有关恢复交易和验证商店收据的更多信息,请参阅
而且没有链接可供参考,我已经实现了:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
与SKPaymentTransactionStateRestored案例。但我没有实现:
`restoreCompletedTransactions`  or `paymentQueueRestoreCompletedTransactionsFinished`

这些方法是否必须才能通过应用内购买审批,或者确切的问题是什么。

谢谢

1个回答

22

使用以下方法来恢复用户在你的应用中购买的产品ID。

- (void) checkPurchasedItems
{
   [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}// Call This Function

//Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
  purchasedItemIDs = [[NSMutableArray alloc] init];

  NSLog(@"received restored transactions: %i", queue.transactions.count);
  for (SKPaymentTransaction *transaction in queue.transactions)
  {
      NSString *productID = transaction.payment.productIdentifier;
      [purchasedItemIDs addObject:productID];
  }

}

purchasedItemIDs将包含用户购买的所有产品ID,您可以放置一个按钮来调用此函数,当其完成后,您将显示所有这些产品以让用户重新下载。


这是一个必要的功能吗?我之前没有在任何应用程序中看到过这个选项。 - Nidal Saed
实际上是的。有很多应用程序实现了这个选项,我在所有的应用程序中都使用了它。根据苹果的报告,如果你使用应用内购买,他们要求你使用它。 - Malek_Jundi
1
https://dev59.com/AGsz5IYBdhLWcg3wn5fa - Yu-Sen Han
6
谢谢,它解决了我的问题。对于其他人来说,如果您不提供恢复功能,苹果将拒绝您的应用程序。这是他们的新政策。 - Mahmud Ahsan
非常感谢,我使用了相同的代码,现在苹果已经批准了我的应用程序,再次感谢您真正惊人的帮助。 - ravinder521986
显示剩余2条评论

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