【问题标题】:Possible to determine if app has been repurchased?可以确定应用程序是否已被回购?
【发布时间】:2014-08-14 20:35:17
【问题描述】:

对于应用内购买,当用户在设备上重新安装应用并在购买后选择再次购买(而不是恢复)该应用的选项时,它将以SKPaymentTransactionStatePurchased 而不是@ 987654322@ in - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions.

我想知道,有没有办法区分第一次购买的“SKPaymentTransactionStatePurchased”和只是免费重新安装用户已经购买的产品?

【问题讨论】:

    标签: ios in-app-purchase


    【解决方案1】:

    我认为这是不可能的。

    你实际上可以做得更好:

    当用户第一次购买某个 IAP 产品时,您可以将该信息存储在 iDevice Keychain 中。在这种情况下,即使用户删除应用并重新安装,您也可以通过编程方式检查 Keychain 中是否已经设置了相应的值,为用户提供所有附加功能,而无需打扰他恢复或再次购买。

    只有在重新安装 iOS 后,购买信息才会丢失。

    【讨论】:

    • 是的,这也是我得出的结论,谢谢。我目前确实使用钥匙串,实际上我认为从 iOS7.1 开始,您可以将钥匙串推送到云端,所以我正在研究它。谢谢。
    【解决方案2】:

    实际上,有一种方法可以确定这一点。如果:

    transaction.originalTransaction != nil && transaction.transactionState == SKPaymentTransactionStatePurchased
    

    那么这将表明该产品已被购买。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2011-05-06
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      相关资源
      最近更新 更多