如何检测之前在应用购买中是否已经购买了 SKProduct 作为消耗品?

问题描述 投票:0回答:1

我导入了 StoreKit 并设置了消耗品购买代码并设置了沙盒测试器。我有三个按钮。每个人都会购买一种单独的产品。这是我的问题:

当我的沙盒测试人员尝试再次购买相同的产品并按下相同的按钮时,Firebase 分析显示:

“购买重复,不会被举报”。

好吧,好吧。但我如何才能得到 AppStore 的响应呢? Firebase 从哪里得到这个?

当我查看

SKPaymentTransaction.transactionState
枚举时,没有任何案例。我尝试检查案例并打印一些内容到控制台,如下所示:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction in transactions {
        switch transaction.transactionState {
        case .purchased:
            print("purchased")
            break
        case .restored:
            print("restored")
            break
        case .failed :
            print("failed")
            break
        case .deferred:
            print("deferred")
            break
        case .purchasing:
            print("purchased")
            break
        @unknown default:
            fatalError()
        }
    }
}

我也检查了

transaction.error
,但也没有错误。

当重复购买导致购买失败时,此代码不会打印任何内容。我怎样才能在这里至少得到一个错误?

我该怎么办?

我的目标是显示警报并告诉客户“您已经购买了这个”。

ios swift in-app-purchase storekit
1个回答
0
投票

正如Paulw11在评论中所说,消耗品购买意味着要多次购买。我错了。试图阻止消费品购买中的多次购买就像“你昨天买了一杯咖啡,为什么今天想再购买一杯?”。当然,今天有人可能想再喝一杯咖啡。

我改变了以平常的方式使用消耗品购买的方法。

© www.soinside.com 2019 - 2024. All rights reserved.