【发布时间】: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