【问题标题】:No restore button for in app purchase causes rejection应用内购买没有恢复按钮导致拒绝
【发布时间】:2012-06-11 06:26:28
【问题描述】:

我正在使用非消耗品的应用内购买来实现一个应用程序,它被苹果拒绝了,原因是:

我们发现您的应用提供可以恢复的应用内购买,但它不包含允许用户恢复之前购买的应用内购买的“恢复”功能。

要恢复以前购买的应用内购买产品,最好提供一个“恢复”按钮并在点击“恢复”按钮时启动恢复过程。

有关恢复交易和验证商店收据的更多信息,请参阅

而且没有链接可以参考,我已经实现了:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

SKPaymentTransactionStateRestored 案例。

但我没有实现:

`restoreCompletedTransactions`  or `paymentQueueRestoreCompletedTransactionsFinished`

这些方法是应用内购买获得批准所必需的吗,或者确切的问题是什么。

谢谢

【问题讨论】:

    标签: objective-c ios xcode in-app-purchase


    【解决方案1】:

    使用以下内容恢复用户从您的应用中购买的产品 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];
      }
    
    }
    

    购买的ItemIDs将包含用户购买它的所有产品ID..您可以在显示所有这些产品后放置一个按钮来调用此函数,以使用户能够再次下载它。

    【讨论】:

    • 这是一个必要的功能,我之前在任何应用程序上都没有看到这个选项
    • 实际上是的......有很多应用程序实现了这个选项,我在我所有的应用程序中都使用了它。根据苹果报告,您可以看到他们需要它,以防您在应用购买中使用。
    • 谢谢它解决了我的问题。对于其他人,如果您不提供恢复功能,Apple 将拒绝您的申请。这是他们的新政策。
    • 这与 Apple 对此函数的文档一样“在支付队列处理完所有可恢复的交易后调用此方法。您的应用程序不需要在此方法中执行任何操作。”。查看来自developer.apple.com/library/ios/#documentation/StoreKit/… 的文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多