【问题标题】:When is the transaction state set to restored in the updatedTransactions delegate method of SKPaymentTransactionObserver?SKPaymentTransactionObserver 的 updatedTransactions 委托方法中的事务状态何时设置为恢复?
【发布时间】:2018-09-29 05:12:39
【问题描述】:

我一直在测试应用内购买的代码,但在调用 updatedTransactions SKPaymentTransactionObserver 委托方法时,我无法将交易状态设置为恢复。该方法何时以该事务状态调用?

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {

    for transaction in transactions {
        switch transaction.transactionState {
        // Call the appropriate custom method for the transaction state.
        case SKPaymentTransactionState.purchasing:
            showTransactionAsInProgress(transaction, deferred: false)
        case SKPaymentTransactionState.deferred:
            showTransactionAsInProgress(transaction, deferred: true)
        case SKPaymentTransactionState.failed:
            failedTransaction(transaction)
        case SKPaymentTransactionState.purchased:
            completeTransaction(transaction)
        case SKPaymentTransactionState.restored:
            restoreTransaction(transaction)
        }
    }

}

【问题讨论】:

  • 调用restoreCompletedTransactios启动恢复过程后
  • 仅供参考 - 您可以在所有 case 语句中放弃使用 SKPaymentTransactionState
  • @Paulw11 好的。非常感谢您的帮助。

标签: ios swift skpaymenttransaction


【解决方案1】:

如果您在SKPaymentQueue 上调用restoreCompletedTransactions 并且用户有可恢复的应用内购买,您将获得恢复的交易。有关完整详细信息,请参阅reference documentation

【讨论】:

  • 文档说我可以在 App Store 中将产品标记为可恢复。我在任何地方都看不到这种设置。是只有在我通过了苹果对产品的审核后才能做到的事情,还是在我选择产品为非消耗品时隐式设置的?我卸载了我的应用程序并运行了我的项目。这 !!! paymentQueueRestoreCompletedTransactionsFinished 方法没有像文档所说的那样被支付队列调用。
  • 非消耗性 IAP 可恢复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
相关资源
最近更新 更多