【问题标题】:In App Purchase - when trying to buy consumable product again - this in-app purchase has already been bought应用内购买 - 再次尝试购买消耗品时 - 此应用内购买已被购买
【发布时间】:2014-11-14 19:11:00
【问题描述】:

我的 iTunes 连接中有可消耗的应用内购买产品,当我尝试购买两次(在我的 iPhone 上)时,它告诉我我已经购买了它。但这就是消耗品的全部意义所在,用户可以一遍又一遍地购买它们。有什么建议吗?

【问题讨论】:

  • 我遇到了类似的问题。你修好了吗?
  • @ravisendhav 接受的答案对我有用
  • 但这对我不起作用。请在下面查看我的代码。
  • 您是否在控制台日志中看到此消息:print("Received Payment Transaction Response from Apple");
  • 我们如何清除待处理的交易?

标签: ios xcode swift skproduct


【解决方案1】:

如果您没有将原始购买的交易标记为已完成,则会发生这种情况,您应该在成功处理购买后在 - (void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray*)transactions 方法中执行此操作。

你需要调用的方法是[[SKPaymentQueue defaultQueue] finishTransaction:transaction]

【讨论】:

  • 谢谢,这真的很有帮助。为了清除以前未完成的交易,必须运行一次此代码:let queue = SKPaymentQueue.default(); queue.transactions.forEach { queue.finishTransaction($0) }
【解决方案2】:
public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions {
        switch (transaction.transactionState) {
        case .purchased:
            complete(transaction: transaction)
            break
        case .failed:
            fail(transaction: transaction)
            break
        case .restored:
            restore(transaction: transaction)
            break
        case .deferred:
            break
        case .purchasing:
            break
        }
    }
}

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多