Подтвердить что ты не робот

In-app биллинговая андроидная аутентификация требуется при попытке подписаться на продукт

Это мой первый раз, когда речь идет о In-App Billing в андроиде 1) Я использую API v3 2) У меня есть альфа-версия моего приложения, чтобы проверить, а затем

enter image description here

3) Я создал продукт подписки

enter image description here

4) Это мой код для подписки на продукт

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) Я получаю следующую ошибку

enter image description here

  • Я пытался использовать разные устройства, и все они имеют ту же ошибку, я также вошел в систему с моей учетной записью Google и могу открыть Google Play Store и просматривать мои приложения.

  • Я попытался также очистить данные из Google Play Store от диспетчера приложений

Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

У меня такая же проблема ранее. Перейдите на консоль разработчика Google и убедитесь, что ваше приложение ОПУБЛИКОВАНО для любой версии (alpha, beta или prod). Затем покупка приложения In будет работать:)

Ответ 2

У вас такая же проблема с ужасным сообщением:

Требуется аутентификация. Вам нужно войти в свою учетную запись Google.

У меня было две проблемы:

  • Я попытался купить продукт в своем коде с идентификатором "com.argonnetech.wordswriting.noads", но продукт приложения, настроенный в консоли разработчика Google Play (GPD), был назван просто "noads"
  • После изменения имени продукта в приложении в консоли GPD мне пришлось переключить его в режим "Активный"

Это сработало. Сообщение об ошибке вводит в заблуждение, такая ошибка, как "в приложении не существует, будет лучше".

Ответ 3

Тестирование разработчика Android для учетной записи покупки в приложении должно выполняться по этим клавишам.

Base64EncodedPublicKey

//Тестирование base64EncodedPublicKey

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

И элемент, приобретенный таким образом,

ITEM_PURCHASED

//Тестирование ITEM_PURCHASED

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

И запустите этот код onCreate(), чтобы инициализировать класс IabHelper для покупка в приложении,

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.");
            }
        }
    });

И, наконец, купил время на этом дескрипторе кода,

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

Спасибо, ребята...

Ответ 4

Документация на developer.android.com кажется устаревшей.

Если вы хотите протестировать публикацию в своем аккаунте без в своем приложении, вам нужно создать группу google и добавить альфа-список тестеров. Глянь сюда: https://support.google.com/googleplay/android-developer/answer/3131213?hl=en

UPDATE

По состоянию на середину 2015 года это больше не требуется. У вас есть несколько новых вариантов тестирования в консоли разработчика Google Play.

Ответ 5

Большинство вышеперечисленных решений работают, но для тех, кто все еще имеет эту проблему, попробуйте следующее:

  • В Android Studio подпишите приложение с помощью ключа release (это создаст подписанный файл app-release.apk)
  • Затем УБЕДИТЕСЬ, вы установите его на своем физическом устройстве с помощью пути установки adb/в/your/app-release.apk (НЕ через Alpha/Бета)

screenshot


Ответ 6

В моем случае versionCode, versionName и applicationId были не синхронизированы с текущей версией приложения на консоли разработчика. Я изменил их в файле build.gradle. Они были разные, потому что я переписал приложение в студии Android из затмения. После этого в приложении биллинг работал.

Ответ 7

Ниже работает для меня:

  • Загрузите черновое приложение как альфа или бета с некоторым кодом версии.
  • Вход на устройство с учетной записью, имеющей активную подписку.
  • Установите подписанное приложение на этом устройстве с той же версией, что и в версии alpha/beta.