通过应用内购买将付费Android应用更改为免费应用

drb*_*odt 8 android google-play

我在Google Play商店获得了成功的应用付款,并希望将此应用更新为应用内购买的免费应用.

我刚刚完成了应用程序的免费版本的开发,该版本为用户提供了限制访问权限,然后可以使用应用程序内购买系统解锁.

我遇到的问题是,我支付应用程序费用的所有现有用户都将升级,然后再次提示再次付费,这当然是不对的.

有没有办法检查用户的购买历史记录,确定他们之前已经为应用程序付款并在没有应用内购买的情况下解锁额外的功能?

谢谢你的帮助.刘易斯

xba*_*esx 5

这是一年,所以OP可能不需要这个,但万一有其他人发生在这个...

你可以通过几种方式来解决这个问题.显然,您的新应用内购买应用中存在一些业务逻辑,用于跟踪谁已经/未付款.所以我认为你能够解决这个问题的两种方式如下:

想法1:

您可以对付费应用程序进行初步更新SharedPreference,该应用程序在应用程序中存储一些或其他持久性(您可以存储versionCode,因此您可以知道要升级的内容并具有围绕该内容的业务逻辑).然后更新到免费版本,并使用免费版本检查您的共享首选项,并在"付费"版本代码的更新上做正确的事情.

想法2:

您可以将这两个应用分开(有付费版本和免费应用内购买)并将更新推送到付费版本,以便BroadcastReceiver除了听取特定意图并让您的应用内付费之外没有其他任何操作购买检查以查看是否有东西会接收您的自定义意图.如果您的旧付费版本存在,那么他们付了钱,如果不是,他们没有.(如果他们支付了付费版本然后卸载你明显会遇到问题...)

想法3:

您可以将两个应用分开(具有付费版本和免费应用内购买),并推送更新到付费版本,只需发布Intent以打开应用内购买应用(如果已安装)并带有一些特殊参数,让你知道他们通过付费应用程序打开它,并做正确的事情,将它们设置为在应用内付费.虽然这可以解决一些检测问题...(可解决但有点笨重)