我们目前有一个实时应用,其中包含App Store中的情节内容。
我们正在重新制定我们的定价,而不是提供单独的剧集以供购买,我们希望将其简单地作为一整套剧集。
我的问题是:如果我将旧的标识符设置为未清除销售,那么之前购买该内容的用户是否仍然可以访问它? (这意味着如果我查询他们是否购买了它,它会返回true)
我是应用程序的应用内购买方面的新手,我不完全确定它是如何运作的。
另外,如果我从iTunesConnect中删除标识符,会发生什么?应该这样做吗?
提前感谢任何见解
答案 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;
}
}
}