In-app purchase Error while retrieving information from server [DF-AA-20]

15,302

Solution 1

DF-AA-20 means your app is not published in any way on the Play store. This is normally because either:

  • you haven't published it yet. To test In-App Billing it must be pushed to at least alpha. See the testing IAB docs for more information
  • your app or developer account has been banned/suspended for abuse
  • you make some change to your package name/applicationId, so that in your apk it doesn't match the one on Play. Developers sometimes do this with build flavors

Solution 2

Oh, I had this exception when I tested buys in my product with different sku.
Check your sku!
Sku must be not CAPS! Only [a-z][0-9]!

Solution 3

Just wait some time. I waited 25 minute and then product registered in google play

Solution 4

It might be handy to point out that you can also get this exact error code message when you simply haven't put your products as active yet in your Google Play Console. (Even in debug they need to be active.)

Share:
15,302
Miljan Rakita
Author by

Miljan Rakita

Love to learn programming. Learning java and c. :)

Updated on June 17, 2022

Comments

  • Miljan Rakita
    Miljan Rakita almost 2 years

    i'm trying to enable in app billing. I've created In-app-products on my google play console and got my License key. When i try to purchase product. I get this image error.

    enter image description here

    Here is the code i use to create BillingProcessor.

    bp = new BillingProcessor(this, LICENSE_KEY, MERCHANT_ID, new BillingProcessor.IBillingHandler() {
            @Override
            public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
                showToast("onProductPurchased: " + productId);
                updateTextViews();
            }
            @Override
            public void onBillingError(int errorCode, @Nullable Throwable error) {
                showToast("onBillingError: " + Integer.toString(errorCode));
            }
            @Override
            public void onBillingInitialized() {
                showToast("onBillingInitialized");
                readyToPurchase = true;
                updateTextViews();
            }
            @Override
            public void onPurchaseHistoryRestored() {
                showToast("onPurchaseHistoryRestored");
                for(String sku : bp.listOwnedProducts())
                    Log.d(LOG_TAG, "Owned Managed Product: " + sku);
                for(String sku : bp.listOwnedSubscriptions())
                    Log.d(LOG_TAG, "Owned Subscription: " + sku);
                updateTextViews();
            }
        });
    

    LICENSE_KEY is my license key from google play console, and MERCHANT_ID is null.

    This is how i buy items.

    bp.purchase(this,PRODUCT_ID);
    

    Where PRODUCT_ID is product1 which i use in my google play console, here is the example of my in-app products.

    enter image description here

    Any idea how to fix this ? There is only one stackoverflow question with DF-AA-20 problem which has no answers. And there is no information on the internet about it. I have tried to use emulator and my android phone.

  • Miljan Rakita
    Miljan Rakita over 6 years
    I checked my sku and it was ok... But as i found out on developer.android.com/google/play/billing/billing_testing.ht‌​ml site, i need first to publish my app at least for alpha testers before testing any in app billing, i think it was a problem, will see when they enable my alpha publish.
  • Miljan Rakita
    Miljan Rakita over 6 years
    I had to wait for them to publish my app first, it was a problem, now i get another error which is not related to this one.
  • Karim Kouznetsov
    Karim Kouznetsov about 6 years
    I actually happen to have this exact error code by doing an in app purchase from my app (that I literally downloaded from Google Play). And I have other apps in production working without problem, so my account is not banned. I wonder if there's not a "multiple users on the same device with two of them invited to alpha testing" issue here.
  • Stanislav Borzenko
    Stanislav Borzenko almost 6 years
    As an addition to first reason "you haven't published it yet", it's possible that "applicationId" of your build is different from "applicationId" of published app. For example, you have several app flavors for different environments (prod, dev, uat) and for each flavor you have added different "applicationIdSuffix".
  • chris
    chris over 5 years
    @MiljanRakita i am facing same issue