关闭应用内购买?

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 示例代码中破解)以某种方式忽略了不再出售的交易,因此恢复与销售一起被禁用。 :( 不过感谢您的智慧!

以上是关于关闭应用内购买?的主要内容,如果未能解决你的问题,请参考以下文章

应用内购买“等待审核”很长时间[关闭]

应用内购买与开发人员的 Paypal [关闭]

使用 SwiftUI 实现应用内购买 [关闭]

已退款的应用内购买订阅是不是显示为已过期? [关闭]

在应用描述中添加应用内购买价格表 [关闭]

IOS 7 模拟器的应用内购买可能吗? [关闭]