在库/ SDK中提供应用内结算

时间:2016-11-21 14:05:41

标签: android in-app-billing aar

Google groups上有一个问题:

  

我们的主应用程序为不同的高级功能提供应用内结算功能。最近我们将代码包装在AAR文件中,该文件免费提供一些基本功能,但我们希望提供In App Purchases for advance功能。   由于我们将被其他应用程序用作SDK,并且这些应用程序可能拥有自己的IAB实现和他们自己的SKU,我们不确定是否仍有一种方法可以使用为我们的主应用程序定义的相同应用程序ID和SKU当试图购买仅与代码的SDK部分相关的东西时,或者是否违反规则并且因为用于验证签名的公钥与我们的主应用程序的私钥不匹配而无法工作?

我有同样的问题所以问题仍然存在,任何建议都非常受欢迎。

谢谢!

3 个答案:

答案 0 :(得分:1)

  

在尝试购买仅与代码的SDK部分相关的内容时,我们无法确定是否仍然可以使用为我们的主应用程序定义的相同应用程序ID和SKU

这不起作用,因为每个应用程序需要具有不同的包名称(应用程序ID),不同的API密钥,并且将使用不同的密钥库进行签名。需要为每个应用设置应用内商品,而您无法控制定价。您应该考虑采用不同的货币化策略。

答案 1 :(得分:1)

  

在尝试购买仅与代码的SDK部分相关的内容时,我们无法确定是否仍然可以使用为我们的主应用程序定义的相同应用程序ID和SKU

如果您通过应用程序ID表示包,则在将应用程序上传到Google Play时无法执行此操作。每个应用都必须拥有自己的套餐(应用ID)。然后,每个应用程序将具有不同的基本64键,并使其他应用程序无法访问In App Items。

可能的解决方案:

(这是基于我已正确理解问题)

  

我们的主应用程序为不同的高级功能提供应用内结算。[...]因为我们将被其他应用程序用作SDK [...]

Wordpress和设计示例:

我使用stargazer主题(父级),这有很多子主题(儿童)。这些设计中的每一个都具有覆盖现有设计的小型更改,但不包含原始设计中的所有代码,并且需要安装父设备才能工作。没有父级,它就没有必要的主代码(或SDK)可以工作。

因此,如果用户使用带有IAB的父应用程序(在应用程序结算中)作为SDK的东西,则需要安装父应用程序才能使用。没有父应用程序,子应用程序将无法正常工作。如果它访问由父应用程序创建和分发的功能,则存在许多通信机制(用于应用程序间通信(具有功能数据的父对象,对于购买的功能))但是子应用程序将从主应用程序获取数据并且解锁子应用中的本地功能。

此处的父应用程序基本上会提供In App Purchase以改进功能。不过我不确定这些功能是怎样的。考虑到之前的wordpress示例,子应用程序会覆盖主应用程序的功能实现:

主应用程序中有些东西可以使用,但是孩子们会更改这些功能(覆盖)主应用程序。

答案 2 :(得分:-1)

这不起作用,因为每个发布的应用程序都有自己唯一的密钥库文件,用于指定其包和一些信息。 此外,每个应用程序都有自己购买的商品。

我之前已经检查过了。 当然是我的错。 当我使用相同的密钥库文件发布时,我的应用程序被拒绝了。 所以我用新的密钥库文件重新发布了。 我希望我的建议会对你有帮助。