关闭应用内购买?

时间:2011-05-24 22:49:06

标签: iphone xcode in-app-purchase itunesconnect

我们目前有一个实时应用,其中包含App Store中的情节内容。

我们正在重新制定我们的定价,而不是提供单独的剧集以供购买,我们希望将其简单地作为一整套剧集。

我的问题是:如果我将旧的标识符设置为未清除销售,那么之前购买该内容的用户是否仍然可以访问它? (这意味着如果我查询他们是否购买了它,它会返回true)

我是应用程序的应用内购买方面的新手,我不完全确定它是如何运作的。

另外,如果我从iTunesConnect中删除标识符,会发生什么?应该这样做吗?

提前感谢任何见解

1 个答案:

答案 0 :(得分:3)

使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];时,Apple会在SKPaymentQueue中返回所有已完成的交易,这是一组交易。该事务将包含payment对象。 payment对象将包含productIdentifier。删除后,此信息可用。因此,您可以兑现过去不再购买的商品。

以下是一些示例代码:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

#pragma mark SKPayment Observer Delegate methods
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
    NSLog(@"received restored transactions: %i", queue.transactions.count);
    for (SKPaymentTransaction *transaction in queue.transactions)
    {
        NSLog(@"tran for product: %@ of state: %i", [[transaction payment] productIdentifier], [transaction transactionState]);
        switch ([transaction transactionState])
        {
            case SKPaymentTransactionStateRestored:
                NSLog(@"found restored transaction: %@ productIdentifier: %@", transaction.transactionIdentifier, transaction.payment.productIdentifier);
                [self yourRestoreProcessSelector:transaction];
                break;
            default:
                break;
        }
    }
}