Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

in-app billing android return authentication is required when try to subscribe to product

This is my first time to deal with In-App Billing in android 1) I am using API v3 2) I have upload alpha version of my app to be able to test then

enter image description here

3) I have created a subscribe product

enter image description here

4) This is my code to subscribe in the product

mSubscribeButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            try {

                Bundle subscribeIntentBundle = mService.getBuyIntent(3, getPackageName(), "my_product_id", "subs", "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");
                PendingIntent pendingIntent = subscribeIntentBundle.getParcelable("BUY_INTENT");

                if (subscribeIntentBundle.getInt("RESPONSE_CODE") == 0) {

                    startIntentSenderForResult(pendingIntent.getIntentSender(), 4002, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
                } else {
                    Toast.makeText(MainActivity.this, "Error Code: " + subscribeIntentBundle.getInt("RESPONSE_CODE"), Toast.LENGTH_SHORT).show();
                }
            } catch (RemoteException e) {
                e.printStackTrace();
            } catch (SendIntentException e) {
                e.printStackTrace();
            }
        }
    });

5) I am getting the following error

enter image description here

  • I have tried to use different devices and all have the same error, I am also logged in with my Google account and can open Google Play Store and view my apps

  • I have tried also to clear data of Google Play Store from app manager

Can anyone help please ??

like image 413
Amira Elsayed Ismail Avatar asked Jan 13 '15 16:01

Amira Elsayed Ismail


3 Answers

I have the same issue previously. Go to your google developer console and make sure your app is PUBLISHED to any version(alpha, beta or prod). Then, the In app purchase will work :)

like image 163
mmw5610 Avatar answered Nov 09 '22 16:11

mmw5610


Got same problem with dreadful message:

Authentication is required. You need to sign in to your Google Account.

There were two problems for me:

  1. I tried to buy a product in my code with identifier "com.argonnetech.wordswriting.noads" but the in app product configured in Google Play Developer (GPD) console was named simply "noads"
  2. After changing the name of the in app product in GPD console, I had to switch it to "Active" mode

The it worked. The error message is misleading, an error like "in app item doesn't exist would be better".

like image 19
a.dibacco Avatar answered Nov 09 '22 16:11

a.dibacco


Android Developer testing for in-app purchase account should following this keys.

Base64EncodedPublicKey

// Testing base64EncodedPublicKey

public static final String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg" +
 "KCAQEAhNe2XQ70DceAwE6uyYJGK1dIBbZcPdlER/9EEzylr6RDU6tnGj0Tk7kceN03GKvRf/ucT+ERLL3O" +
 "aHR22PXRXLZ17NZ81x6oS2vGmLyXBnjrU/I+asl8cNuLGySaoCdXxPAV+A9g6OG13dk+KY9i0O1roGpFH" +
 "fsAFyKCgSqR0PMJZ1bS+wFFBYf3M4IxgBcxuuZKDmR+MztCgm5N4zc6w2CwFZn3mXeDoTg15mWDU3sZO" +
 "WeRwFeynhV+FCYdDp8DpAkLk1b5IiXYFQ53wxCh/GxiKqBB6uQMmAixFjAcZV1QWfcBABae9vxiV5" +
 "VAEJvOOnhPxnaT9HYadW0pQ/UbJwIDAQAB";

And item purchased key like that

ITEM_PURCHASED

// Testing ITEM_PURCHASED

public static final String ITEM_PURCHASED = "android.test.purchased";

And Starting put this code onCreate() to initialization IabHelper class for in-app purchase,

IabHelper helper = new IabHelper(this, Constants.base64EncodedPublicKey);
helper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            if (!result.isSuccess()) {
                Log.d("#InAppStartSetup#", "In-app Billing setup failed: " + result);
            } else {
                Log.d("#InAppStartSetup#", "In-app Billing setup successful.");
            }
        }
    });

And finally purchased time on this code handle over here,

helper.launchPurchaseFlow(YOUR_ACTIVITY, Constants.ITEM_PURCHASED,
                YOUR_REQUEST_CODE, mPurchaseFinishedListener, "");

Thank You Guys...

like image 6
Najib.Nj Avatar answered Nov 09 '22 18:11

Najib.Nj