如何确定IAP是否导致还原(非还原流)

时间:2015-01-09 16:21:55

标签: ios in-app-purchase

想象一下具有非耗材IAP的应用程序。通常,用户会购买该产品,如果他们卸载并重新安装或决定在第二台设备上玩,他们就会恢复。这种情况很容易处理。

然而,存在另一种情况,其中用户在第二设备上执行非消耗品的正常购买流程。在这种情况下,他们会完成购买的步骤,但不会付钱,而是告诉他们已经购买了商品,并询问他们是否愿意重新下载。请注意,我并不是在谈论可下载的内容,只是常规的非消耗品。

问题是我如何区分这种类型的恢复与新购买?让我来看看一些不太有用的明显答案:

  1. 检测交易状态SKPaymentTransactionStateRestored - 此类型的恢复未标记此状态,标记为SKPaymentTransactionStatePurchased

  2. originalTransactionIdtransactionId 进行比较 - 在​​此类恢复中,这两个值相等。

  3. originalPurchaseDatepurchaseDate 进行比较 - 这是最接近工作的东西。令人惊讶的是,对于真正的新购买,这些日期并不一定相同。它们通常在几秒钟之内。

  4. 当然,这不是一个常见的流程,大多数恢复,当它们发生时,应该并且将通过正常的恢复流程发生。尽管如此,我还没有看到任何明确的解决方案来确定我们是否有重新购买。

    This page from the Apple docs是相关的,仅供参考。

0 个答案:

没有答案