实施应用内bp后,您如何在应用内解锁付费风格

时间:2018-07-10 05:23:43

标签: android google-play in-app-purchase in-app-billing

我已经成功使用Anjlab iab v3实施了应用内结算,并成功进行了测试,但是如何在同一应用内解锁付费版本。

香料

flavorDimensions "default"
    productFlavors {
        free {
            minSdkVersion 15
            targetSdkVersion 27
        }
        paid {
            minSdkVersion 15
            targetSdkVersion 27
        }
    }

已检查资源hereherehere

我不想:

intent.setData(Uri.parse("market://search?q=pname:MyApp")); 

不确定,是否可行:我想将所有内容都放入Free Ver。 (付费版本功能保持为不可见)并在购买成功后将其设置为可见模式。 但是,首先将Flavors放在哪里有什么意义呢?

如果能获得关于如何在Google Play中实现应用内应用的更简单版本的信息,那将非常好,因为文档和示例似乎很难实现,因此我们也在SO上获得了有关此方面的信息。

如果付款成功,解锁付费版本的下一步应该是什么。现在,我传达了我的意图,但这不是一种有效的方法。

@Override
    public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
        Intent paid = new Intent(this, Test_Paid.class);
        startActivity(paid);
    }

我想要的是,当付款成功后,应该总是打开付费版本而不是免费版本,这不是现在的情况。

谢谢!

In-app purchase successful

1 个答案:

答案 0 :(得分:2)

有两种方法可以实现该应用程序的付费和免费版本:

  1. 不同的产品口味:如果您采用这种方式,那么基本上您的付费版本和免费版本是两种不同的应用程序。用户必须从Play商店独立下载一个或另一个。 产品风味是建立时间的属性。一旦生成了apk,就无法切换产品口味。

  2. 保持付费功能不可见:如果您想要一个apk,这是可行的方法。用户支付了订阅费用后,您就可以将该数据存储在后端,并在启动时通过api通知客户端(无论客户端是否已付费)。

如果没有后端,则可以使用某种级别的加密/安全性将hasUserPaid标志保存在本地sqlite数据库中。这样做的缺点是,一旦用户卸载或清除了应用程序的数据,数据库将被清除。要重新填充,您将必须向播放服务验证用户是否购买了您的订阅。

相关问题