有没有办法从后端服务器消费谷歌播放应用内产品?

2022-09-02 10:50:58

使用谷歌播放应用内产品可以很容易地从客户端应用程序完成(http://developer.android.com/google/play/billing/api.html#consume)。

但是,我无法找到有关从后端服务器执行此消耗请求的任何信息。购买状态 API (http://developer.android.com/google/play/billing/gp-purchase-status-api.html) 旨在从后端服务器使用,但它不提供任何使用应用内产品的方法。

有没有办法从后端服务器消费谷歌播放应用内产品?


答案 1

我正在尝试实现听起来类似于您的方法的东西。在我们的例子中,我们的目标受众是孩子,因此我们不希望消费者是付款的人,父母可能会购买几份,每个孩子一份。因此,正常模型(每个客户一件事)不起作用。

由于许可(每个孩子)实际上是由我们的服务器处理的,因此任何付款(我们将其作为消耗品处理)都必须在应用程序上执行操作,然后将令牌传递给服务器进行验证,然后服务器更新许可证,下次有关儿童询问其许可证时,他们认为付款已作。然后,应用必须将它们标记为已使用,即使激活不是它可以直接控制的东西。相反,似乎唯一的选择是管理所有购买令牌的表,并在内部将它们标记为已消费,因此应用程序必须定期询问当前(google)用户是否有任何待处理的令牌,需要消费,并在它们这样做时勾选它们。作为对此的扩展,我们必须通过检查自己是否应该阻止请求的孩子(或正在付款的Google用户)继续进行,以防他们是否有可能来自另一个孩子的付款,从而使付款过程过于复杂。

如果谷歌允许服务器将消耗品标记为已使用,那将简单得多,但我还没有找到解决方案。让我们希望APIv4拥有它。


答案 2

现在至少可以使用 Android Publisher V3 API 进行确认,请参阅:

https://developers.google.com/android-publisher/getting_started

https://developers.google.com/android-publisher/api-ref/purchases/products/acknowledge

看起来消费仍然只能从客户端进行。


推荐