首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Android BillingClient,如何在重装或更换设备后恢复用户的IAP?

使用Android BillingClient,如何在重装或更换设备后恢复用户的IAP?
EN

Stack Overflow用户
提问于 2021-05-24 14:11:48
回答 2查看 111关注 0票数 0

我的应用程序有一个一次性的、不可使用的IAP来关闭广告。我正在尝试为我的应用程序提供一个“恢复购买”选项。在用户卸载应用程序或迁移到新设备的情况下,他们可以选择恢复其过去的一次性购买。

我的应用程序遵循谷歌文档https://developer.android.com/google/play/billing/integrate中描述的购买流程

我已经寻找了一些例子来恢复过去购买的不同设备,但我找到的所有例子都是引用AIDL方法的过时的。

我已经研究了方法、BillingClient.queryPurchases()BillingClient.queryPurchaseHistoryAsync()queryPurchaseHistoryAsync()提供过去所有采购的PurchaseHistoryRecord列表,包括取消的采购,但不提供采购状态,以确定其中任何一项是已完成采购还是待定采购。

相比之下,queryPurchases()会给出一个购买列表和他们的状态,但只针对设备。如果用户在不同的设备上创建IAP,它将返回一个空列表。

我没有后端,因为我是一个资源有限的独立开发人员,所以我的应用程序必须是自包含的。

任何帮助都是非常感谢的。谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2021-05-26 01:19:49

所以我了解到,queryPurchases()被缓存在您的设备本地,但是当您调用queryPurchaseHistoryAsync()时会更新它

我从这个堆栈溢出答案中发现了here

因此,我的解决方案是,当想要在新设备上恢复购买,或重新安装我的应用程序时。调用queryPurchaseHistoryAsync(),然后在onPurchaseHistoryResponse()的回调中调用queryPurchases(),并在List<Purchase>中从PurchasesResult查看用户过去购买的任何商品的购买状态。

如果有预期的购买,你的应用程序可以授予他们过去购买的权利。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67667388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档