如何使用 play billing libray v6.0.1 查询旧(一次性)购买的物品

问题描述 投票:0回答:1

我正在从应用内结算 v3 迁移到 Play Billing Library v6.0.1。我陷入了困境,需要使用播放计费库 v6.0.1 查询并确认旧的(一次性)购买。通过应用内计费 v3,可以使用此方法轻松查询购买情况

.isPurchased()

无论是否购买商品都会返回。在这个新的播放计费库 v6.0.1 中,不存在这样方便的方法来轻松执行此任务。

提供一个代码示例,我可以在其中使用 Play Billing Library v6.0.1 查询和确认旧购买。

android android-studio billing android-billing play-billing-library
1个回答
0
投票

您可以使用此代码片段查询用户是否已经购买了您的任何订阅或一次性产品:

public static boolean isQueryPurchased = false;
    public static boolean isAlreadyPurchaseQuery() {
        if (billingClient.isReady()) {
          billingClient.queryPurchasesAsync(QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.INAPP).build(), new PurchasesResponseListener() {
                @Override
                public void onQueryPurchasesResponse(@NonNull BillingResult billingResult, @NonNull List<Purchase> list) {
                    if (!list.isEmpty()){
                        if (list.contains("Your one-time product key")){
                            isQueryPurchased = true;
                        }
                    }
                }
            });
            billingClient.queryPurchasesAsync(QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.SUBS).build(), new PurchasesResponseListener() {
                @Override
                public void onQueryPurchasesResponse(@NonNull BillingResult billingResult, @NonNull List<Purchase> list) {
                    if (!list.isEmpty()){
                        if (list.contains("Your subscription key")){
                            isQueryPurchased = true;
                        }
                    }
                }
            });
        }
        return isQueryPurchased;
    }

初始化计费客户端后使用此方法。

© www.soinside.com 2019 - 2024. All rights reserved.