【问题标题】:Google play Subscriptions Free trialGoogle play 订阅 免费试用
【发布时间】:2018-06-09 01:28:06
【问题描述】:

有什么方法可以检查用户是否已经使用了他的免费试用版?

当我查询 sub 时,我得到了下一个数据:

[
    SkuDetails:{
        "productId":"...",
        "type":"subs",
        "price":"...",
        "price_amount_micros":0000,
        "price_currency_code":"USD",
        "subscriptionPeriod":"P1M",
        "freeTrialPeriod":"P1W1D",
        "title":"...",
        "description":"..."
    }
]

请问这个字段 "freeTrialPeriod":"P1W1D" 在用户使用免费试用时消失? 或者也许有其他方法可以知道它?

我需要显示“免费”而不是订阅价格,然后在用户使用他的免费试用版后显示实际价格

【问题讨论】:

  • 你有什么运气测试这个吗?我也在尝试实现您的相同要求。
  • @DamienDiehl 是的,无论用户是否可用,您似乎都会收到 "freeTrialPeriod":"P1W"。所以你需要手动管理它。但是,当您执行 mSubHelper.launchPurchaseFlow(...) 时,用户将在 GooglePlay 的弹出窗口中查看他们的试用期是否已过期,例如 prntscr.com/j49fyq
  • 是的,这很棘手,我发现 queryPurchases 甚至不一定会返回所有以前购买的 SKU,因此我们不能依赖它来确定是否有免费试用可用。我仍在寻找解决方案,但我认为不会有任何可靠的东西:(
  • @DamienDiehl 似乎您所能做的就是在成功购买后保存试用状态。如果您可以通过您的服务器识别用户,您可以将状态存储在那里。否则只需将其存储在本地,如果重新安装,用户将在应用程序中看到“免费试用”,并在 GP 弹出窗口中看到真实状态。您也可以尝试通过电子邮件 (stackoverflow.com/a/2175688/7825979) 识别用户,但您需要特殊权限才能这样做,我认为这不值得:(

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


【解决方案1】:

在文档中,Google 明确强调,Google Play 有责任向用户展示他们已使用免费试用版。

注意:SkuDetails.getFreeTrialPeriod() 返回免费试用期 在 Google Play 控制台中配置。用户可能已经 使用了免费试用版。在这种情况下,Google Play 会与用户沟通 他们没有资格再次免费试用。

Free Trial Documentation

这意味着您可以始终向用户显示(免费 3 天,然后是价格/时间),或者您需要手动处理(使用共享首选项、您自己的服务器、使用异步查询购买历史记录以保持共享状态在重新安装的情况)

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2023-01-05
    • 2018-09-19
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多