我如何验证已取消的应用内订阅?

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

我正在使用:bp.isSubscribed(ID)验证我的订阅。但是当我取消订阅时,方法bp.isSubscribed(ID)仍返回true。我该怎么办?

transDetails.purchaseInfo.purchaseData.purchaseState.toString()在我从Play商店管理订阅中手动取消后,请务必返回PurchasedSuccessful。

public void checkSubscriptionDetails(){

bp = new BillingProcessor(this, LICENSE_KEY, new BillingProcessor.IBillingHandler() {
            @Override
            public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {

                Common.printLog("InApp", ":onProductPurchased :" + productId);


            }

            @Override
            public void onPurchaseHistoryRestored() {

            }

            @Override
            public void onBillingError(int errorCode, @Nullable Throwable error) {
           }

            @Override
            public void onBillingInitialized() {


            }
        });


boolean purchaseResult = bp.loadOwnedPurchasesFromGoogle();
// ## purchaseResult is always return FALSE 

        if (bp.isSubscribed(planID)) {

            TransactionDetails transDetails = bp.getSubscriptionTransactionDetails(planID);

            String strDetailsSubsMonth = "OrderID:" + transDetails.orderId +
                    "\nproductId: " + transDetails.productId +
                    "\npurchaseToken: " + transDetails.purchaseToken +
                    "\npurchaseTime: " + transDetails.purchaseTime +
                    "\npurchaseInfo.signature: " + transDetails.purchaseInfo.signature +
                    "\npurchaseInfo.responseData: " + transDetails.purchaseInfo.responseData +
                    "\npurchaseData.purchaseToken: " + transDetails.purchaseInfo.purchaseData.purchaseToken +
                    "\npurchaseData.autoRenewing: " + transDetails.purchaseInfo.purchaseData.autoRenewing +
                    "\npurchaseData.developerPayload: " + transDetails.purchaseInfo.purchaseData.developerPayload +
                    "\npurchaseData.purchaseState: " + transDetails.purchaseInfo.purchaseData.purchaseState.toString();

            String strPurchaseState = transDetails.purchaseInfo.purchaseData.purchaseState.toString();
            Common.printLog("InApp", "Details: " + planID + " >> " + strDetailsSubsMonth + " \n" + "Purchase State :" + strPurchaseState);
        }

}


package com.anjlab.android.iab.v3;

public enum PurchaseState
{
    PurchasedSuccessfully,
    Canceled,
    Refunded,
    SubscriptionExpired
}

取消订阅后,我需要返回“取消”。

java android in-app-billing android-developer-api in-app-subscription
1个回答
1
投票

bp中启动onCreate()变量,然后调用loadOwnedPurchasesFromGoogle()

就我而言!

不知道为什么我们需要多次拨打loadOwnedPurchasesFromGoogle()。当我在loadOwnedPurchasesFromGoogle()中的onCreate()中调用时,我总是会出错。但是当我调用onPause()onDestory()时,我得到了真,所有值都得到了更新。

loadOwnedPurchasesFromGoogle()为真后,我获得更新订阅值!

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