IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)

68,610

Solution 1

Wipe helped me. Strange error.

Solution 2

Well we can't help you without having much information.So instead I'll try to do a checklist for you in case you missed something:

  1. Are you testing on an emulator?Billing services should be tested on devices,BUT if you really have to test on the emulator,make sure the emulator has google play installed and set up.This is very important!

  2. Did you set the correct permission in the manifest? (com.android.vending.BILLING)

  3. If you are still testing the app,did you get a test app licence from the playstore, imported the level in your SDK ,set up your licence verification library? (you can follow along here: setting up

  4. On your activity onActivityResult did you correctly handle the activity result?As seen on the example from google you should do it this way:


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
  Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);

  // Pass on the activity result to the helper for handling
  if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
    super.onActivityResult(requestCode, resultCode, data);
  }
  else {
    Log.i(TAG, "onActivityResult handled by IABUtil.");
  }
}

Also having more information could be useful, like if you are testing on the emulator or device, the device name, the android version etc...

Solution 3

This error indicates that you're connecting to the in-app billing service on your device, but that the service doesn't support IAB version 3. It may be that your device's version of Google Play only supports version 2 of IAB. What version of Google Play is running on your device?

Is your version of Google Play otherwise functional (e.g., can you open the Google Play store)? Sometimes, if the date on your device is off, or there is some other problem, Google Play itself can go South.

Finally, what's in your logcat output? It would be easier to provide assistance if you provided more detail.

Solution 4

I got that error when I installed the App BEFORE I registered everything and set Google Play store up. Once I set the Google Play Store account up, the error went away.

Solution 5

The documentation for version 2.0 of the billing was actually more helpful than 3.0 for this one even though I'm using version 3.0 of the billing.

Here's how 2.0 describes it Response Code 3:

Indicates that In-app Billing is not available because the API_VERSION that you specified is not recognized by the Google Play application or the user is ineligible for in-app billing (for example, the user resides in a country that prohibits in-app purchases).

For me I had to setup a test Google account on my phone first before testing. I forgot that step. Once I did that fixed it for me...

Look for Server Response Codes here:

http://developer.android.com/google/play/billing/v2/billing_reference.html

http://developer.android.com/google/play/billing/billing_reference.html

Share:
68,610
artem
Author by

artem

Updated on May 13, 2020

Comments

  • artem
    artem about 4 years

    I'm trying to use In-App billing:

    mIabHelper = new IabHelper(this, BILLING_KEY);
            mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
                @Override
                public void onIabSetupFinished(IabResult result) {
                    if (!result.isSuccess()) {
                        Log.d(TAG, "Problem setting up In-app Billing: " + result);
                    }
                }
            });
    

    And getting the error:

    Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)
    

    Why? Tried to clear cache of the Play Store, didn't work for me.