Iphone iOS应用内购买还原返回许多事务

Iphone iOS应用内购买还原返回许多事务,iphone,ios,in-app-purchase,restore,Iphone,Ios,In App Purchase,Restore,当我恢复以前的购买时Storekit正在调用UpdateTransactions,其中包含大量以前的事务。不知道为什么每次恢复时都会返回大量数据,比如100、200、245、360、650,这似乎是随机的 这只发生在沙箱里吗? 如果没有,选择项目的标准是什么。我有许多项目具有相同的产品id?有很多关于使用updateTransactions进行恢复的投诉。下面的代码可以工作,但需要用户输入用户名和密码。(目前,开发人员一直在iAction调用中使用此功能,该调用需要一个按钮) 然后调用下面的委托

当我恢复以前的购买时
Storekit
正在调用
UpdateTransactions
,其中包含大量以前的事务。不知道为什么每次恢复时都会返回大量数据,比如100、200、245、360、650,这似乎是随机的

这只发生在沙箱里吗?
如果没有,选择项目的标准是什么。我有许多项目具有相同的产品id?

有很多关于使用updateTransactions进行恢复的投诉。下面的代码可以工作,但需要用户输入用户名和密码。(目前,开发人员一直在iAction调用中使用此功能,该调用需要一个按钮)

然后调用下面的委托

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
     for (SKPaymentTransaction *transaction in queue.transactions) 
    {
        if ([myItem.productID isEqualToString:transaction.payment.productIdentifier])
        {
            myItem.purchased = YES;
        }
    }
}

如果没有需要还原的项目,我想知道如何在不在界面上放置“还原”按钮的情况下执行此操作。

如何还原购买的项目?请核对我的答案
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
     for (SKPaymentTransaction *transaction in queue.transactions) 
    {
        if ([myItem.productID isEqualToString:transaction.payment.productIdentifier])
        {
            myItem.purchased = YES;
        }
    }
}