关闭应用内购买?
Posted
技术标签:
【中文标题】关闭应用内购买?【英文标题】:Turning off an in-app purchase? 【发布时间】:2011-05-24 22:49:05 【问题描述】:我们目前在 App Store 中有一个直播应用,其中包含情节内容。
我们正在重新制定定价,而不是提供单独的剧集供购买,我们希望将其作为一整套剧集。
我的问题是:如果我将旧标识符设置为不准出售,之前购买过该内容的用户是否仍然可以访问它? (意思是如果我查询他们是否购买了它,它会返回true)
我是应用内购买方面的新手,我不完全确定它是如何工作的。
另外,如果我从 iTunesConnect 中删除标识符,会发生什么?甚至应该这样做吗?
提前感谢您的任何见解
【问题讨论】:
【参考方案1】:使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
时,Apple 将在SKPaymentQueue
中返回所有已完成的交易,该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;
【讨论】:
啊,我希望我之前就知道这种能力。我想在我的应用程序的旧版本上禁用旧的 IAP,但允许新版本应用程序的用户恢复他们的旧购买(并获得升级)。在恢复时,我的代码(从旧的 UrbanAirship 示例代码中破解)以某种方式忽略了不再出售的交易,因此恢复与销售一起被禁用。 :( 不过感谢您的智慧!以上是关于关闭应用内购买?的主要内容,如果未能解决你的问题,请参考以下文章