在 Google Play 上将付费应用迁移到应用内购买
Migrating paid app to In App Purchase on Google Play
关于将现有的付费应用程序迁移到使用应用程序内购买的免费增值模式的主题,很多很多年前就有很多老问题和答案,但它们都只是陈述了相同的有限解决方法。
那么在2019年有官方的方法来做到这一点吗?或者至少是一种避免常见陷阱的方法,比如
对用户体验的负面影响
- 要求现有(付费)用户购买 0 美元的 IAP
- 要求现有(付费)用户使用促销代码购买 IAP
最终会在用户购买新设备时失效
- 通过向服务器发送设备标识符或在
SharedPreferences
中存储标记来跟踪哪些设备安装了付费应用程序
还有其他同样有缺陷的方法,甚至不值得一提。正确而简单的修复当然是简单地 API 调用 Google 播放服务:
bool legacyPremiumUser = didUserEverPurchaseThisApp();
今天有这样的东西吗?即使只是一种跨设备识别用户的方法也是可以接受的。
既然一年多了还没有人回答,我还不如post自己的
我最后做了一些
的大杂烩
- 检测仅在付费应用中可用的设置
- 让用户在迁移到订阅之前使用他们的 Google 帐户登录旧的付费版本。然后,他们可以通过在新的基于订阅的版本中使用相同的 Google 帐户登录来恢复他们的“旧版高级状态”(即绕过订阅)。
- 让未在旧付费版本中使用 Google 帐户登录的用户验证他们的 Google 播放订单号(我已将其下载并编译到服务器上的数据库中,可以通过 HTTP 调用检查它们)。
如果一切都失败了,他们可以通过电子邮件或 in-app 反馈表手动联系我,我会尝试在 Google 播放订单管理 and/or 中找到他们的购买相信他们的话,手动为他们的 Google 帐户解锁遗留高级版。
它远非完美,但胜过要求老客户再次付款......一次又一次......
关于将现有的付费应用程序迁移到使用应用程序内购买的免费增值模式的主题,很多很多年前就有很多老问题和答案,但它们都只是陈述了相同的有限解决方法。
那么在2019年有官方的方法来做到这一点吗?或者至少是一种避免常见陷阱的方法,比如
对用户体验的负面影响
- 要求现有(付费)用户购买 0 美元的 IAP
- 要求现有(付费)用户使用促销代码购买 IAP
最终会在用户购买新设备时失效
- 通过向服务器发送设备标识符或在
SharedPreferences
中存储标记来跟踪哪些设备安装了付费应用程序
还有其他同样有缺陷的方法,甚至不值得一提。正确而简单的修复当然是简单地 API 调用 Google 播放服务:
bool legacyPremiumUser = didUserEverPurchaseThisApp();
今天有这样的东西吗?即使只是一种跨设备识别用户的方法也是可以接受的。
既然一年多了还没有人回答,我还不如post自己的
我最后做了一些
的大杂烩- 检测仅在付费应用中可用的设置
- 让用户在迁移到订阅之前使用他们的 Google 帐户登录旧的付费版本。然后,他们可以通过在新的基于订阅的版本中使用相同的 Google 帐户登录来恢复他们的“旧版高级状态”(即绕过订阅)。
- 让未在旧付费版本中使用 Google 帐户登录的用户验证他们的 Google 播放订单号(我已将其下载并编译到服务器上的数据库中,可以通过 HTTP 调用检查它们)。
如果一切都失败了,他们可以通过电子邮件或 in-app 反馈表手动联系我,我会尝试在 Google 播放订单管理 and/or 中找到他们的购买相信他们的话,手动为他们的 Google 帐户解锁遗留高级版。
它远非完美,但胜过要求老客户再次付款......一次又一次......