很多很多年前有很多关于使用应用内购买将现有付费应用迁移到免费增值模式的主题的旧问题和答案,但它们都只是陈述了相同的有限变通方法。

那么在 2019 年有官方的方法来做到这一点吗?或者至少是一种避免常见陷阱的方法,比如

对用户体验的负面影响

  • 要求现有(付费)用户购买 0 美元的 IAP
  • 要求现有(付费)用户使用促销代码购买 IAP

  • 当用户购买新设备时最终会失败
  • 通过向服务器发送设备标识符或在 SharedPreferences
  • 中存储标志来跟踪哪些设备安装了付费应用

    还有其他同样有缺陷的方法,甚至不值得一提。正确且简单的修复当然是对 Google Play 服务的简单 API 调用:
    bool legacyPremiumUser = didUserEverPurchaseThisApp();
    

    今天还有这样的事情吗?即使只是一种跨设备识别用户的方法也是可以接受的。

    最佳答案

    由于一年多没有答案,我不妨发布我自己的。
    我最终做了一些大杂烩

  • 检测仅在付费应用程序中可用的设置
  • 允许用户在迁移到订阅之前使用其旧付费版本的 Google 帐户登录。然后,他们可以通过在基于订阅的新版本中使用相同的 Google 帐户登录来恢复他们的“传统高级状态”(即绕过订阅)。
  • 让未在旧付费版本中使用 Google 帐户登录的用户验证他们的 Google Play 订单号(我已将其下载并编译到服务器上的数据库中,可以在其中通过 HTTP 调用进行检查)。

  • 如果一切都失败了,他们可以通过电子邮件或应用内反馈表手动与我联系,我会尝试在 Google Play 订单管理中找到他们的购买和/或只是相信他们的说法并为他们的 Google 帐户解锁旧版溢价手动。
    它远非完美,但它胜过要求传统客户再次付款……一次又一次……

    10-06 01:48