这是使用Web服务在Android中订阅的正确方法吗?

时间:2013-01-29 09:31:33

标签: android in-app-billing subscription google-play-services

我有一个连接到网络服务的应用。我已经在我的应用程序中实现了订阅,我不确定这是否是正确的方法。这就是我正在做的事情。

  1. 我正在使用正确的ID和类型进行REQUEST_PURCHASE
  2. Google Play会以异步IN_APP_NOTIFY回复。
  3. 我致电GET_PURCHASE_INFORMATION获取购买信息。
  4. 我从purchaseToken回复得到PURCHASE_STATE_CHANGED和其他详细信息。我将它们存储在本地数据库中。
  5. 我发送CONFIRM_NOTIFICATION以确认我已收到purchaseToken
  6. 现在我查看我的本地数据库并获取purchaseToken并将其发送到我的网络服务器,该服务器将使用Google Developer Android API来验证购买并解锁订阅内容。当我的服务器告诉应用程序它已经过验证时,我将其从我的数据库中删除。
  7. 在应用程序的每次启动时,我都会检查我的本地数据库是否有一些条目,如果有,我会尝试通过再次调用我的网络服务器来验证它。

    我怀疑第六步。我想我应先用我的服务器确认然后再做第5步。

    当我有一个可以使用的网络服务时,这里的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

由于很长一段时间没有答案,我决定自己写。

V2应用内结算API非常复杂。 V3 API可供订阅,强烈建议您使用它。 API实现起来非常简单。

从我所看到的情况来看,与一次性购买相比,人们对订阅更加犹豫不决。所以我转向一次性购买模式只有一个计划,购买时提供一年的专业功能,之后他们可以再次续订。

现在流程非常简单。

  • 要求购买。
  • 返回成功后,显示类似&#34的消息;可能需要几分钟才能激活专业功能"
  • 消费购买。
  • 将purchaseToken存储在本地缓存中。
  • 在后台使用服务器进行验证。
  • 解锁专业版功能。