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

Каковы возможности получить этот код ошибки 3 в покупке InApp?

Я использую код InApp V3 для покупок в приложении в моем приложении, я получаю эту ошибку BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE и error value :3, когда учетная запись Google недоступна на устройстве. Я хочу знать, есть ли другие возможности для получения этой ошибки, потому что, когда я получаю эту ошибку, мне нужно показать всплывающее окно пользователю с некоторыми данными. Если это вызвано из-за недоступности учетной записи Google на устройстве, я покажу диалог с соответствующим текстом. это код, который я использую

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
    public void onIabSetupFinished(IabResult result) {              
        if (!result.isSuccess()) {
                // error here               
            return;
        }
    }
});

это ошибка Error checking for billing v3 support. (response: 3:Billing Unavailable)

4b9b3361

Ответ 1

Как мы можем видеть непосредственно в код настройки IabHElper образца, предоставленного google, ошибка означает:

"Служба биллинга недоступна на устройстве".

Как вы можете прочитать здесь, что ошибка означает

Billing API version is not supported for the type requested

Это Справочник биллинга в приложении (IAB Version 3), поэтому ошибка означает, что IAB v3 не установлен на устройстве.

На самом деле это означает, что у пользователя есть учетная запись google и, возможно, также служба выставления счетов в приложении, но у нее нет последней версии. Это происходит в старых устройствах, и когда пользователь никогда ничего не обновляет, он используется для устройств, где вы можете увидеть старое приложение Market вместо приложения Play.

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

UPDATE:

Если вы ищете код во всем библиотечном SDK и вспомогательные классы, предоставляемые google, это единственное место, где мы можем найти именно то, что именно вы вызываете: startSetup класса IabHelper

Intent serviceIntent = new Intent(
                "com.android.vending.billing.InAppBillingService.BIND");
        if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0)
                .isEmpty()) {
            // service available to handle that Intent
            mContext.bindService(serviceIntent, mServiceConn,
                    Context.BIND_AUTO_CREATE);
        } else {
            // no service available to handle that Intent
            mServiceConn=null;
            if (listener != null) {
                listener.onIabSetupFinished(new IabResult(
                        BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE,
                        "Billing service unavailable on device."));
            }
        }

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

  • У устройства нет установленной службы.
  • У него есть старая версия, так как мы знаем, что в последних версиях магазина воспроизведения используется IAB v3.

Таким образом, ваша ошибка может означать только одно из этого, что для вас означает, что вы должны показать пользователю mesagge, например: "У вас нет установленных служб google play, или вам нужно их обновить". И нет других возможностей или ошибок.

Но, если вы хотите сделать это проще для пользователей, вы можете сказать, что им нужно обновить приложение Google Play до последней версии. И это заставит все работать как шарм.

Ответ 2

Эта ошибка также принимается после того, как пользователь удалит свою учетную запись google с устройства.

Ответ 3

В основном возможность вашей проблемы BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE заключается в том, что в некоторых странах все еще в App Purchase не разрешено, как в Сербии и во многих странах.

Таким образом, любой пользователь из страны, где Google Play не поддерживает приложение App Purchase, вы получите BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE.

Это будет меньше шансов, что у пользователя не будет обновлена ​​Служба Google Play, установленная на телефоне, поэтому не беспокойтесь об этом случае.

Ответ 4

Войдите в Play Store с любой учетной записью.

После входа в биллинг работает даже на Android Studio Emulator.

Ответ 5

Попробуйте этот хак

Удалите кеш, данные и обновления для приложения для воспроизведения, снова запустите приложение для воспроизведения, оно должно работать! или попробуйте с последними обновлениями (если он исправлен)

FYI:

Просто имейте в виду:

  • IABv3 встроен в службы Google Play, поэтому для него требуется обновление Службы Службы Службы.

  • V2 был встроен в клиент Play Store. Проблема кэширования /EULA не относится конкретно к IAB, это связано с настройкой Play Услуги (и, надеюсь, для большинства пользователей не требуется, часть кеша в любом случае).

  • Это облом, который будет в этот переходный период, когда Play Services быть обновленным до того, как ваше приложение сможет его использовать, но я думаю большинство людей согласится, что это лучше, чем ждать операционной системы обновить.

См. этот ref: отчет об ошибке, G + post

Ответ 6

Когда-нибудь, если вы не аутентифицировали свое устройство с учетной записью Google, может получить эту ошибку.

Ответ 7

Для тех, кто все еще сталкивается с этой проблемой, в большинстве случаев iab не поддерживается в вашей стране, как сказал Уильямс. Вы можете использовать VPN, чтобы он работал.

Ответ 8

Если вы находитесь в Тонге (как я) или в любой другой стране, где вы не можете покупать приложения в Google Play, вы должны использовать VPN для тестирования биллинга. В противном случае вы получите эту ошибку.