【问题标题】:Restoring purchases in iOS在 iOS 中恢复购买
【发布时间】:2013-02-20 07:55:34
【问题描述】:

我正在努力恢复购买,所以我没有什么疑问

1) 如何显示恢复按钮

我已经在左上角显示了,点击它我调用这个函数

- (IBAction)restorePurchases:(id)sender
    {
        [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
        [[SKPaymentQueue defaultQueue]restoreCompletedTransactions];

    }

但是如果用户没有购买任何物品或者如果用户购买了物品但没有删除并重新安装应用程序怎么办,我是否仍然需要显示恢复按钮,如果是,点击它应该是什么行为。

2) 现在,如果我购买了一个项目并删除应用程序并重新安装应用程序,然后单击恢复按钮,它会调用此函数

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
    for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction];
                break;
            **case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];**
            default:
                break;
        }
    }
}

但是现在,假设我没有任何项目,只需单击恢复按钮,它会询问我的苹果 ID,输入苹果 ID 后,没有任何反应,它没有调用上述函数,我想知道为什么会这样。

另外,我想向用户显示没有要恢复的项目的消息,我该怎么做。

我搜索了这个,它们是一个委托函数,如果没有要恢复的事务,它将被调用

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{

}

我所做的是,这里我检查了是否没有要恢复的项目,我将显示为没有要恢复的项目,我这种方法是否正确。

问候 兰吉特

【问题讨论】:

    标签: ios ios5 ios6 in-app-purchase


    【解决方案1】:

    直接来自Store Kit Header File

    // 异步。将为当前用户添加已完成的交易 返回队列以重新完成。用户将被要求 认证。观察者将收到 0 个或更多 -paymentQueue:updatedTransactions:,后跟 -paymentQueueRestoreCompletedTransactionsFinished: 成功或 -paymentQueue:restoreCompletedTransactionsFailedWithError: 失败。在部分成功的情况下,一些交易可能仍然是 已送达。

    - (void)restoreCompletedTransactions  __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      相关资源
      最近更新 更多