关于In app计费初始化时间

时间:2013-04-29 15:02:41

标签: android in-app-billing android-billing

我现在正在将iab添加到我的应用程序中,但在谷歌阅读了所有文档并进行了一些测试后,我有一个疑问。我该什么时候开始服务?在应用程序初始化时这是一个好时机吗?我应该在每次用户想要购买产品时启动系统吗?

你是如何处理的?

干杯。

2 个答案:

答案 0 :(得分:2)

好的,现在是时候我想要一个完整的答案了。

  • 当您需要执行事务或检索信息/完成时,您可以从IAB服务绑定到/取消绑定。不必担心那里的性能,因为这是一个本地服务,当你绑定它时不一定连接到谷歌服务器(只有例外:购买,但这需要一些时间);它采用不同的策略来决定何时上线。
  • 正如tjPark正确地说,将您的应用程序内部用户拥有的内容与IAB的想法同步是一个好主意。无论是在您的应用启动时,还是在用户做出几个选择之后,都取决于您的应用。如果您需要知道您的启动画面用户拥有哪些IAB项目,请在启动画面活动中执行此操作。如果它之后才变得相关,那么稍后查询IAB服务会更有意义。
  • 如果您的IAB项目可以消费,您还应该仔细考虑适合您需要的消费策略。
  • 始终注意IAB V3 uses caching extensively所以即使将您的应用与IAB服务同步,也不一定能为您提供最新信息。例如。当用户在设备1上购买应用内商品并希望在设备2上使用它时,会有一段延迟直到它出现。或者,如果您在Google Checkout / Wallet中取消交易且设备处于离线状态,您也不会立即知道。
  • Don't use Google example code without refining it to achieve product maturity
  • 知道IAB服务响应可能会受到重播攻击,因为您无法提供您的请求的随机数。
  • 要知道如果你没有server-side validation,那么你的整个IAB代码可以被简单的代码替换为虚拟代码。

答案 1 :(得分:1)

http://developer.android.com/google/play/billing/api.html

从上面来看,Google表示

当您的应用程序启动或用户登录时,最好通过Google Play查看以确定用户拥有的项目。要查询用户的应用内购买,请发送getPurchases请求。如果请求成功,Google Play会返回一个捆绑包,其中包含所购商品的商品ID列表,各个购买详情的列表以及购买商品的签名列表。

检查每个init我会为您的产品提供更多保护