使用 Android BillingClient,如何在重新安装或更改设备后恢复用户的 IAP?
Using Android BillingClient, how to restore a user's IAP after re-installing, or changing their device?
我的应用程序有一个单一的一次性非消耗性 IAP 来关闭广告。我正在尝试为我的应用程序提供“恢复购买”选项。如果用户卸载应用程序或迁移到新设备,他们可以选择恢复他们过去的一次性购买。
我的应用遵循 Google 文档 https://developer.android.com/google/play/billing/integrate
中描述的购买流程
我一直在寻找示例来恢复过去对不同设备的购买,但我发现的所有示例都已过时,引用了 AIDL 方法。
我看过方法 BillingClient.queryPurchases()
和 BillingClient.queryPurchaseHistoryAsync()
。 queryPurchaseHistoryAsync()
列出了 PurchaseHistoryRecord
的列表,其中包含所有过去的购买,包括已取消的购买,但不提供购买状态以确定其中任何一项是已完成还是待定购买。
相比之下,queryPurchases()
将提供购买清单及其状态,但仅限于设备。如果用户在不同的设备上创建 IAP,它 returns 一个空列表。
我没有后端,因为我是一个资源有限的独立开发者,所以我的应用程序必须是独立的。
感谢任何帮助。谢谢。
购买链接到设备 Google 帐户,如果用户安装应用程序并在第二台设备上使用相同的帐户,则 BillingClient.queryPurchases()
将 return 他拥有所购买的内购
如果他想使用不同的 Google 帐户,那么他将不得不重新购买该商品。
所以我了解到 queryPurchases()
在您的设备上本地缓存,但在您调用 queryPurchaseHistoryAsync()
时更新
我从这个 Whosebug 答案中发现 here
所以我的解决方案是,当我想在新设备上恢复购买或重新安装我的应用程序时。调用 queryPurchaseHistoryAsync()
然后在 onPurchaseHistoryResponse()
的回调中调用 queryPurchases()
并在 PurchasesResult
的 List<Purchase>
中查找用户过去购买的任何购买状态。
如果有预期购买,您的应用可以授予他们过去购买的权利。
我的应用程序有一个单一的一次性非消耗性 IAP 来关闭广告。我正在尝试为我的应用程序提供“恢复购买”选项。如果用户卸载应用程序或迁移到新设备,他们可以选择恢复他们过去的一次性购买。
我的应用遵循 Google 文档 https://developer.android.com/google/play/billing/integrate
中描述的购买流程我一直在寻找示例来恢复过去对不同设备的购买,但我发现的所有示例都已过时,引用了 AIDL 方法。
我看过方法 BillingClient.queryPurchases()
和 BillingClient.queryPurchaseHistoryAsync()
。 queryPurchaseHistoryAsync()
列出了 PurchaseHistoryRecord
的列表,其中包含所有过去的购买,包括已取消的购买,但不提供购买状态以确定其中任何一项是已完成还是待定购买。
相比之下,queryPurchases()
将提供购买清单及其状态,但仅限于设备。如果用户在不同的设备上创建 IAP,它 returns 一个空列表。
我没有后端,因为我是一个资源有限的独立开发者,所以我的应用程序必须是独立的。
感谢任何帮助。谢谢。
购买链接到设备 Google 帐户,如果用户安装应用程序并在第二台设备上使用相同的帐户,则 BillingClient.queryPurchases()
将 return 他拥有所购买的内购
如果他想使用不同的 Google 帐户,那么他将不得不重新购买该商品。
所以我了解到 queryPurchases()
在您的设备上本地缓存,但在您调用 queryPurchaseHistoryAsync()
我从这个 Whosebug 答案中发现 here
所以我的解决方案是,当我想在新设备上恢复购买或重新安装我的应用程序时。调用 queryPurchaseHistoryAsync()
然后在 onPurchaseHistoryResponse()
的回调中调用 queryPurchases()
并在 PurchasesResult
的 List<Purchase>
中查找用户过去购买的任何购买状态。
如果有预期购买,您的应用可以授予他们过去购买的权利。