向现有用户提供免费的应用内购买

Offer free in-app purchase to exsisting users

我制作了一个应用程序,现在在 Google Play Store 中运行(它也在 Apple App Store 中,直到 Apple 无故删除它)。该应用程序的价格为 1.99,但我现在正在考虑添加广告并将其设置为免费(反正我不确定..)通过应用程序内购买来删除广告。

问题是我绝对不想让人们再次付款(我说的是已经购买过的人)。我如何向现有用户提供免费的应用程序内服务?我没有在线用户数据库,应用程序完全离线。

您可以将您当前的 App 重命名为 "NameApp Pro",让它成为 1.99。

使用 Android 风格创建一个新的无广告应用程序。使用 flavors,您可以更改 applicationId(包不同):

Set the Application ID

android {
    defaultConfig {
        applicationId "com.example.myapp"
    }
    productFlavors {
        free {
            applicationIdSuffix ".free"
        }
        pro {
            applicationIdSuffix ".pro"
        }
    }
}

我正在完善 Abr 评论。

首先,无论何时处理这种情况,您都必须拥有服务器数据库(用于身份验证)并存储谁购买了您的应用程序。我认为您不需要本地数据库,但您需要一个标志来定义当前用户是否购买了该应用程序,并且您可以在 NSUserDefault 中维护该标志。

现在,每当用户通过任何设备登录时,您需要通过 API 在您的服务器数据库中匹配他的 电子邮件 ID/Phone no 并检查他是否用户凭据是否有效,如果有效则是否为购买用户并将此标志保存在 NSUserDefault 中。

现在在您的应用程序中做任何您想更改的事情,它不会向您购买的用户反映任何问题,因为他们总是从服务器中过滤掉。

注意: 你没有考虑一个条件,如果一个用户通过 android 应用程序注册你的应用程序并使 google 在 -应用购买。后来他购买了 iPhone 并从苹果商店下载了您的应用程序。根据您当前的情况,他还必须为 i-phone 购买您的应用程序。我认为没有一个用户想再次购买它。

所以我的解释也会解决这个问题。

Edit

As you said app is completely offline in comment.

为了让用户在线进行应用内购买交易。现在你可以做一件事,在此期间,如果用户付款成功,则将其数据存储到服务器中(显然他通过任何 ID 购买了应用程序,因此存储该 ID)。

现在,当用户再次安装时,会在应用内屏幕中提供 restore 选项。当用户单击此按钮时,检查用户状态是否在您的服务器数据库中向用户付款,并在此处向用户询问电子邮件。

如果您没有服务器数据库,则从本机存储恢复事务。