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
3) I have created a subscribe product
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
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 ??
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 :)
Got same problem with dreadful message:
Authentication is required. You need to sign in to your Google Account.
There were two problems for me:
"com.argonnetech.wordswriting.noads"
but the in app product configured in Google Play Developer (GPD) console was named simply "noads"The it worked. The error message is misleading, an error like "in app item doesn't exist would be better".
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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With