【问题标题】:Turning off an in-app purchase?关闭应用内购买?
【发布时间】:2011-05-24 22:49:05
【问题描述】:

我们目前在 App Store 中有一个直播应用,其中包含情节内容。

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

我的问题是:如果我将旧标识符设置为不准出售,之前购买过该内容的用户是否仍然可以访问它? (意思是如果我查询他们是否购买了它,它会返回true)

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

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

提前感谢您的任何见解

【问题讨论】:

    标签: iphone xcode in-app-purchase app-store-connect


    【解决方案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 示例代码中破解)以某种方式忽略了不再出售的交易,因此恢复与销售一起被禁用。 :( 不过感谢您的智慧!
    猜你喜欢
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多