在应用购买中检查Android Play商店的标准方法是什么?

我的应用通过
Android BillingClient库使用应用内购买来启用“专业版”版本.这样可以轻松获得定价详细信息,接受付款并将升级标记为已购买.

但是,如果我作为应用程序所有者进入控制台并退款购买,我无法弄清楚我应该如何禁用我的应用程序中的专业功能. getPurchasesList()结果中似乎没有任何内容指示购买的状态,但据我所知,它在本地设备上缓存,因此它不会自动更新.

目前我的支票如下:

Purchase.PurchasesResult purchases = billingClient.queryPurchases(BillingClient.SkuType.INAPP);
        if (purchases != null)
        {
            List<Purchase> bought = purchases.getPurchasesList();
            if ( bought != null && 0 < bought.size() )
            {
                for (int i=0;i<bought.size(); i++)
                {
                    if ( bought.get(i).getSku().equals(PRO_VERSION) )
                    {
                        purchased = true;
                    }
                }
            }
        }

我可以在这里做些什么来检查购买是否已经退款或者是否可以在以后进行二次背景检查?我不想经常从缓存中删除购买通知,因为该应用程序很可能用于信号有限或不完整的区域,我不希望任何合法购买它的人突然失去他们的’专业’版本他们需要的时候.同时,如果有人购买了它然后退款,我希望能够在应用程序中反映出来.

我目前没有运行自己的任何后端基础设施,我宁愿保持这种方式.

最佳答案 看来实际上你的问题没有真正的解决方案.但在浏览了一些谷歌文章之后,实际上看起来应用内购买并不打算退款,除非在一些非常罕见的边缘案例中.这意味着退款行为并非我所能想到的.

资料来源:https://github.com/googlesamples/android-play-billing/issues/113

点赞