问题描述
|
目前,我们在App Store中有一个实时应用,其中包含情景性内容。
我们正在重新制定价格,而不是提供单独的剧集进行购买,我们希望将其作为一整集来使用。
我的问题是这样的:如果我将旧标识符设置为“不清除”,则是否仍允许以前购买该内容的用户访问它? (表示如果我查询他们是否已购买,它将返回true)
我对应用程序的应用程序内购买方面还是陌生的,我不完全知道它是如何工作的。
另外,如果我从iTunesConnect删除标识符,会发生什么?是否应该这样做?
预先感谢您的任何见解
解决方法
当使用
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
时,Apple将以SKPaymentQueue
返回所有已完成的交易,SKPaymentQueue
是交易的集合。事务将包含“ 2”对象。 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;
}
}
}