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

How to know if a user has used a free trial with Google Play Billing Library?

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

有什么想法吗?谢谢!

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

可能的值:

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

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

例如,当您收到SUBSCRIPTION_PURCHASED通知时,您可以进行与上述相同的请求,以检索有关购买的信息。在 JSON 中,您会看到 priceAmountMicros 字段。试用应该是0。所以您可以将其存储在您的服务器上并稍后检查。