gpt4 book ai didi

android - BillingClient 的 queryPurchases 能否提供有关应用内购买所有权的可靠声明?

转载 作者:行者123 更新时间:2023-11-29 00:03:28 25 4
gpt4 key购买 nike

我提供 1 个应用程序内购买(完整功能)。我将购买结果保存在 sharedpreference 的一个 bool 变量中,并在应用程序启动时使用 queryPurchases,因此如果有人删除并重新安装了该应用程序,他将恢复其全部功能。

这工作正常,但我也想阻止全部功能,如果事实证明,有人没有购买全部功能(并使用 root 设备欺骗应用程序)。这还包括删除他不应该在没有应用内购买的情况下拥有的一些数据。

但是,我对 queryPurchases 的描述感到困惑。它说

“购买成功后,Google Play 的应用内结算服务会在本地缓存用户的购买数据。”

它存储该信息多长时间?如果互联网连接可用,它会自动更新吗?即使用户购买了应用内购买并错误地阻止了他的全部功能,我怎样才能避免没有购买?那里有什么

有没有办法获得明确的信息,即用户实际上没有购买某件商品,而不仅仅是没有关于可能购买的信息?如果用户付费,我真的想避免阻止功能。

我的方法还有什么问题(将购买保存在 sharedpreferences 中立即获得信息并额外查询购买)

编辑:我还注意到,如果我对应用内购买进行退款,卸载并重新安装该应用,queryPurchases 仍然会找到该购买。必须有办法避免这种情况吗?

最佳答案

不要费心将购买的内容存储在共享首选项中。它们已经通过计费库存在于设备上。购买存储在计费库为您检索的 Play 商店数据中。

您可以假设已启用全部功能,直到您收到查询购买的结果,该结果将明确告诉您用户是否已购买。如果您愿意,您可以向后执行此操作并采用试用模式,直到您知道存在购买。

无论哪种方式,购买查询都会快速返回,因为不需要网络连接,因为计费库只需连接到设备上的 Play 商店即可获取数据。

如果您在开发者控制台中退款,可能需要一段时间才能过滤到用户设备,但最终会。它不是一个实时系统,在退款完全处理并发送到用户设备之前,购买将一直缓存在设备上。

您可以直接在设备上消费购买的商品,该设备会立即将其从用户帐户中删除。

关于android - BillingClient 的 queryPurchases 能否提供有关应用内购买所有权的可靠声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46341550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com