如何知道用户是否使用了 Google Play Billing Library 的免费试用版?

问题描述

我似乎在 Google 返回的 Purchase 对象中找不到任何相关信息。我知道 SkuDetails 有一个“getFreeTrialPeriod()”方法,但它只返回免费试用的持续时间,而不是用户是否使用免费试用。

有什么想法吗?谢谢!

解决方法

这只有在您使用后端处理订阅时才有可能。然后,您可以从您的服务器制作一个 request,它将返回包含购买信息的 JSON,您可以在其中找到 paymentState 字段。

可能的值:

  • 0 - 待付款
  • 1 - 收到付款
  • 2 - 免费试用

如果您想确定试用版现在是否处于活动状态,可以使用它。要确定过去是否进行过试用,您的服务器应接收 Real-time developer notifications 并存储有关已购买订阅的信息。

例如,当您收到 SUBSCRIPTION_PURCHASED 通知时,您可以发出与上述相同的请求,以检索有关购买的信息。在 JSON 中,您将获得 priceAmountMicros 字段。它应该是 0 试用。因此,您可以将其存储在您的服务器上,以便稍后检查。