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

Я использую код 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)

7 ответов


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

" служба выставления счетов недоступна на устройстве."

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

Billing API version is not supported for the type requested

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

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

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

обновление:

если вы ищете код во всех библиотеках 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."));
            }
        }

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

  • на устройстве не установлена служба.
  • он имеет старую версию, так как мы знаем, что последние версии play store, использует IAB v3.

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

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


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


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

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

это было бы меньше шансов, что пользователь не обновил сервис Google Play, установленный на телефоне, поэтому не беспокойтесь об этом случае.


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

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

FYI:

Только имейте в виду:

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

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

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

посмотреть этот код: сообщить об ошибке, G+ пост


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


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

после входа в биллинг работает даже на эмуляторе Android Studio.


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