Cправка — Google Play
Войти
Справка Google
- Справочный центр
- Сообщество
- Google Play
- Политика конфиденциальности
- Условия использования Google Play
- Отправить отзыв
Тема отзыва
Информация в текущем разделе Справочного центра
Общие впечатления о Справочном центре Google
- Справочный центр
- Сообщество
Google Play
В связи с нарушениями работы платежных систем, платежная система Google Play приостановила работу для пользователей в России с 10 марта 2022 г. Подробнее здесь
Привет, я Влад, core разработчик Adapty SDK для Android. Продолжаю серию статей про то, как внедрять внутренние покупки в приложение Google Play. Остальные посты можно найти по ссылкам:
-
Android in-app purchases, часть 1: конфигурация и добавление в проект.
-
Android in-app purchases, часть 2: инициализация и обработка покупок.
-
Android in-app purchases, часть 3: получение активных покупок и смена подписки.
-
Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием. — Вы тут.
-
Android in-app purchases, часть 5: серверная валидация покупок.
Сегодня мы поговорим о кодах ошибок, которые мы можем получить от Billing Library в методе getResponseCode().
Пример того, как мы передавали ошибки в свои колбэки, можно посмотреть в этой статье. С одной ошибкой мы уже знакомы по предыдущим статьям — это USER_CANCELED, когда пользователь закрывает диалог покупки, ничего не купив. Давайте познакомимся с остальными.
Коды ошибок
Начнем с самых простых ошибок – с говорящим названием ERROR (responseCode 6) и чуть более говорящим названием DEVELOPER_ERROR (responseCode 5). Для первого случая гугл пишет в документации «Fatal error during the API action», для второго – «Invalid arguments provided to the API». Например, я смог получить DEVELOPER_ERROR, когда для запроса querySkuDetailsAsync() в билдер в setType() передал пустую строку.
Но не всё так просто. Я пошел дальше и в методе launchBillingFlow() использовал измененный SkuDetails (вытащил json из SkuDetails реального продукта, поменял в нем productId и передал в конструктор новому SkuDetails). По сути это invalid argument, и я ожидал получить DEVELOPER_ERROR, но… получил ERROR.
Отдельного упоминания заслуживает текст, который показывается в диалоге в этом кейсе — сравните английский и русский вариант:
Это, конечно, был искусственный пример. Гораздо ближе к реальности кейс, когда гугл отклонил оплату. Если при тестировании покупок с тестовой карты, о чем мы расскажем в конце статьи, в диалоге покупки выбрать «test card, always declined», вернется также ошибка ERROR, но уже с адекватным текстом.
В третьей статье, где описывалась смена подписки, мы для одного из proration mode увеличили цену годовой подписки почти в 3 раза, но не сказали, какая там должна была быть ошибка, если бы мы этого не сделали. Исправляемся.
Так как там, получается, указан неправильный proration mode, по логике мы должны получить всё ту же DEVELOPER_ERROR. Но нет, мы получаем SERVICE_UNAVAILABLE (responseCode 2). Ее же мы получаем и если указать любое левое число в качестве proration mode (это int, а не enum, нас никто не остановит), и если указать неправильный purchaseToken. Смотрим в документацию про SERVICE_UNAVAILABLE – «Network connection is down». Так, стоп…
При этом еще мы видим интересный диалог.
Что еще любопытно – в кейсе с ERROR при закрытии диалога НЕ через кнопку «ОК» (то есть, теми способами, которые интерпретируются как возврат назад) в onPurchasesUpdated() пришло, собственно, ERROR, а в случае с SERVICE_UNAVAILABLE в аналогичном кейсе приходит USER_CANCELED (но если нажать «ОК» в диалоге, то мы, как и ожидали, получим SERVICE_UNAVAILABLE).
Ну и в случае с отсутствием интернета SERVICE_UNAVAILABLE тоже приходит, тут не соврали.
Вот остальные коды ошибок с небольшими комментариями, так сказать, honorable mentions.
-
BILLING_UNAVAILABLE (responseCode 3). Гугл поясняет, что «Billing API version is not supported for the type requested». Я смог воспроизвести эту ошибку, разлогинившись из Google-аккаунта, а также на Хуавее без Google Play Services. Возможно, она также воспроизведется на старых телефонах, где не обновляли Google Play.
-
SERVICE_DISCONNECTED (responseCode -1). Приложение иногда дисконнектится от сервиса Google Play. Это может произойти, если Play Store вдруг решит обновиться. Поэтому лучше перестраховаться и коннектиться перед каждым вызовом методов Billing Library, как в предыдущих статьях. А еще мы с гуглом советуем добавить какую-нибудь retry policy, если эта ошибка всё же придет в ответе.
-
SERVICE_TIMEOUT (responseCode -3). Название говорит само за себя — мы слишком долго ждали ответ от Google Play.
-
FEATURE NOT SUPPORTED (responseCode -2). В классе BillingClient есть пять констант FeatureType. Их доступность на данном устройстве можно проверять с помощью метода billingClient.isFeatureSupported(BillingClient.FeatureType.НужнаяФича). У меня на телефоне (Xiaomi Mi A2 Lite) FEATURE_NOT_SUPPORTED вернулось только для SUBSCRIPTIONS_ON_VR. При этом для IN_APP_ITEMS_ON_VR, как и для всех остальных фич, вернулось OK.
-
ITEM_NOT_OWNED (responseCode 8). Возникает при попытке законсьюмить покупку, которой у нас нет. Например, повторно после успешного консьюма.
-
ITEM_ALREADY_OWNED (responseCode 7). А тут наоборот – при попытке купить продукт, который у нас уже есть. В таком кейсе просто нужно обновить UI и сделать кнопку покупки некликабельной.
Самая популярная ошибка
Последняя и, наверное, самая популярная ошибка в начале пути внедрения in-app purchases — это ITEM_UNAVAILABLE (responseCode 4). Она говорит о том, что продукт недоступен для покупки, но не говорит, почему. А причины могут быть самые разные: от тестирования на неправильном аккаунте или неправильной сборке до покупки неактивированного продукта.
Вот чек-лист, что нужно сделать, чтобы избежать ее при тестировании:
-
Отправить в ваш test track сборку с Billing Library. Это обязательное условие — при этом вы можете тестировать и на дебажных сборках с таким же applicationId, но важно, чтобы хотя бы один раз сборка с Billing Library была загружена в Play Console.
-
Добавить в этот test track гугл-аккаунты тестировщиков, что особенно актуально для internal testing или закрытой альфы/беты. Там же будет ссылка в разделе How testers join your test, по которой тестировщики должны будут принять приглашение.
-
Покупать можно только активированный продукт. После создания продукта в Play Console есть кнопка activate, более детально процесс создания продукта мы описывали в первой статье.
-
Удостовериться, что тестирование на устройстве проходит с гугл-аккаунта, который является тестировщиком. Очевидный пункт, но бывает всякое, и это тоже нужно проверить, если вы получили такую ошибку.
-
applicationId
сборки, с которой тестируется покупка, должно полностью совпадать с applicationId из Play Console. Это особенно важно для тех, у кого добавляется суффикс в дебажных сборках. -
Добавить email-адреса тестировщиков в раздел Setup → License Testing в левом меню аккаунта (не приложения), чтобы они покупали продукты бесплатно с тестовой карты, а не с реальной. Еще один плюс, что подписки в данном случае будут иметь тестовую длительность. Не связано с этой ошибкой, но тоже полезное знание.
Заключение
Ошибки способны сильно усложнить работу, поэтому всегда важно понимать, как они могут возникнуть. Учитывая, сколько шагов нужно пройти, чтобы получить доступ к продуктам, проще всего словить ITEM_UNAVAILABLE. Поэтому я надеюсь, что мой чек-лист вам поможет.
Про Adapty
Для более простой работы с ошибками советую попробовать Adapty SDK для внедрения внутренних покупок в приложения. Кроме технической части, Adapty даёт много преимуществ:
-
Встроенная аналитика позволяет быстро понять основные метрики приложения.
-
Когортный анализ отвечает на вопрос, как быстро сходится экономика.
-
А/Б тесты увеличивают выручку приложения.
-
Интеграции с внешними системами позволяют отправлять транзакции в сервисы атрибуции и продуктовой аналитики.
-
Промо-кампании уменьшают отток аудитории.
-
Open source SDK позволяет интегрировать подписки в приложение за несколько часов.
-
Серверная валидация и API для работы с другими платформами.
Познакомьтесь подробнее с этими возможностями, чтобы быстрее внедрить подписки в своё приложение и улучшить конверсии.
Иногда люди сталкиваются с ошибкой инициализации биллинга, не до конца понимая, что это за ошибка и как её решить. Чтобы в этом разобраться для начала необходимо понять, что же такое биллинг.
Что такое биллинг?
Биллинг – (от английского «bill» — счёт) это специальная система, выставляющая различные счета клиентам. Данные счета выставляются за использование каких-либо услуг компании или же за покупку товаров. В наше время биллинг в компаниях является крайне сложным комплексом технологий и программ, которые помогают вести учёт всех предоставленных услуг, устанавливать определённые тарифы и, в конечном итоге, отправлять клиентам счета, учитывая все акции и скидки.
В сотовой связи биллинг работает в реальном времени. То есть со счёта клиента денежные средства списываются моментально. За это клиент сразу же получает необходимые ему услуги (например, Интернет-трафик, SMS и др.). Чтобы работать в таком режиме, система должна быть очень надёжной, а стабильность работы не должна прерываться ни на секунду.
Ошибки инициализации биллинга
При покупке различного рода услуг у операторов связи (телекоммуникации) и даже при покупке различного контента в Интернете может возникнуть ошибка биллинга. Такие ошибки при выставлении счёта не дают возможность приобрести необходимые человеку услуги или товары, однако есть несколько способов для исправления этой ошибки.
Совершить покупку в другое время
Ошибка биллинга может появиться по разным причинам. Если человек сделал много запросов на приобретение товара или услуг, которые были отклонены, то скорее всего возникнет данная ошибка. К тому же, банковская карта, с которой должна производиться оплата может быть помечена как «Подозрительный способ оплаты». Также необходимо внимательно посмотреть, какой регион указан при покупке. Если регион указан неверно, то скорее всего появится ошибка биллинга.
В таких случаях клиенту необходимо подождать 1-2 суток и попытаться совершить покупку снова. Чаще всего достаточно подождать 24 часа, после чего совершение покупки не составит проблем.
Проверить правильность платёжной информации
Возможно ошибка возникает из-за неправильной платёжной информации клиента. Ему необходимо тщательно проверить все данные, которые он указывал. Это может быть регион, способ оплаты, банковская карта и другие данные. Из-за неправильно указанных данных система не может выставить счёт, выдавая такие ошибки биллинга.
Очистка кэша и изменение личных данных
Накопленный кэш зачастую является проблемой некорректной работы. Чтобы исправить это, достаточно просто удалить весь кэш с устройства. Если неполадки не устранились, то можно попробовать удалить личные данные и ввести их заново. Для обновления информации в системе может потребоваться от 3 до 48 часов. После этого можно заново проводить платёжные операции.
- Добавить свои
Оставьте свой комментарий
10 ответов
Совершенство! Я потратил много времени, пытаясь выяснить, почему я получаю ошибку. Ошибка аутентификации. Необходимо войти в свою учетную запись google. И через много часов я узнал — я пытался получить доступ к неправильному идентификатору элемента с консоли. В элементе подписки на консоль разработчика был включен «премиум», и я попытался получить доступ к элементу «premium_version». Глупая ошибка, но ошибка в google абсолютно не информативна. Надеюсь, что это поможет
Alex Perevozchykov
15 янв. 2015, в 12:30
Поделиться
В моем случае произошло то, что правильный продукт был настроен на консоли, однако он не был активирован.
nobre
10 июль 2015, в 21:56
Поделиться
Если кто-нибудь получит вышеупомянутое всплывающее окно, вы можете повторно проверить следующие шаги, потому что, к сожалению, это всплывающее окно google недостаточно информативно для подсказки.
- Убедитесь, что вы правильно используете идентификатор продукта (он должен быть таким же, как и на консоли разработчика).
- Перед тестированием убедитесь, что вы активировали продукт на консоли разработчика. Это может занять некоторое время, поэтому подождите, пока он будет готов.
- Убедитесь, что версия вашего приложения опубликована в Beta, Alpha или Production
- Не забудьте добавить тестовые письма в список тестировщиков (Настройки → Список тестировщиков → Создать список). Тестирование электронной почты должно отличаться от учетной записи издателя.
- Если в этом ничего не работает, попробуйте удалить учетную запись google на своем телефоне и добавить обратно и очистить данные в Play Маркете.
Надеюсь, что это поможет:)
Sachini Samarasinghe
30 дек. 2016, в 06:28
Поделиться
В моем случае мой base64EncodedPublicKey был неправильным, а также мой продукт inapp был неактивным. Убедитесь, что идентификатор продукта ur inapp такой же, как в консоли.
Fazal
12 март 2016, в 21:41
Поделиться
Я боролся с этой ошибкой часами. Мои идентификаторы продукта были правильными, приложение было опубликовано в Alpha, я активировал список тестеров Alpha, присоединившись к ссылке выбора, но ничего не работало.
В конце концов я обнаружил, что вы не можете использовать ту же учетную запись Gmail, которая используется для консоли разработчика. Вот и все, добавил еще одну учетную запись gmail в качестве тестера и использовал ее для загрузки приложения и больше ошибок аутентификации.
Кроме того, только заметка, вносящая изменения в приложение и построение отладочной версии, вызвала повторную ошибку. Могут использоваться только подписанные APK.
Stevo
02 нояб. 2016, в 22:49
Поделиться
Решено. Это была ошибка только Id продукта. Идентификатор продукта из Play-store и в приложении SKU_NAME должен быть таким же для биллинга приложений.
Это не упоминается правильно в проекте примера iab, который является productId
i.e SKU_GAS = «газ» и SKU_PREMIUM = «premium» в проекте
затем
«газ» и «премиум» должен быть доступен в play-store как productId.
Lokesh Tiwari
02 нояб. 2015, в 11:02
Поделиться
Если вы используете образцы Google (например, тривиальный диск), это может произойти из-за старого файла .aidl. Получите последнюю версию, чтобы протестировать ваше приложение.
VSB
21 авг. 2016, в 17:32
Поделиться
Убедитесь, что вы создаете и подписываете приложение с тем же хранилищем ключей, что вы подписали APK, который был загружен на бета-канал Google Play.
Я допустил ошибку при подписании с разными Keystores и не заметил этого.
nightfixed
18 март 2016, в 18:27
Поделиться
Убедитесь, что вы вошли в Play Store с тестовой учетной записью. Перезагрузите телефон. Он должен работать, по крайней мере, в моем случае необходим перезапуск.
erdomester
27 дек. 2015, в 19:21
Поделиться
Я столкнулся с одной и той же проблемой, используя правильный идентификатор продукта для каждого элемента «Купить приложение». Мое приложение было готово к публикации в Google Play (с APK в альфа-тестировании), но оно не было отправлено. Решение заключалось в том, чтобы отправить приложение для просмотра командой разработчиков Google Play Developer.
Надеюсь, это поможет вам!
Javier S.
11 окт. 2015, в 00:17
Поделиться
Ещё вопросы
- 1Как добавить безопасность в Java.
- 0Jquery добавление дополнительных # к объектам DOM
- 0C ++ вызывает исключение std :: bad_alloc для очень маленького std :: vector с использованием std :: sort
- 0Вставьте CSS во внешнюю таблицу стилей с помощью jquery
- 1Отображение диалогового окна Android вне приложения
- 1Как выделить поле в отчете rdlc, если оно было изменено по сравнению с предыдущей строкой?
- 0Как я могу сопоставить ‘*’ в регулярном выражении
- 1Есть ли способ использовать querySelector, чтобы получить открытую тень дом
- 1Поток данных (TPL) — проблема обработки исключений?
- 1Показывать информацию о версии только один раз при запуске приложения в Android App
- 0Проверьте, действительно ли строка, содержащая html, пуста
- 0Я звоню на многие сессии JQuery?
- 0Как реализовать Firebase в $ asyncValidators?
- 1Выборочная страница бесконечной прокрутки
- 0AngularJS ngTagsInput автозаполнение
- 1Android Generate QR Scan изображение
- 1Как включить HTML в Email Send
- 1Python — загрузка файла в памяти (сгенерированного вызовами API) в FTP по частям
- 1Эффективно сравнивайте серии поплавков панд с рядами панд
- 0Как ввести случайные числа в предложении, где в SQL
- 0Как преобразовать мою ручку в угловое дерево?
- 0Кто-нибудь знает, как называется технология, которая отображает графику в окне терминала на Linux?
- 1Как обрабатывать несколько потоков одновременно с помощью Task Parallel Library
- 1Ручной фильтр даты в пандах
- 1Вставьте более 1000 записей в SQL Server 2008 за один раз
- 1Как передать классический ASP Scripting.Dictionary в библиотеку классов C # COM?
- 0JQuery FadeIn, FadeOut DIV
- 1Индекс массива внутри векторизации
- 1_.bindAll не работает при визуализации представления Backbone
- 0Отправить выбранные элементы в поле?
- 1Как объединить два тензора, имеющих разную форму, с TensorFlow?
- 0функция привязки динамически на jQuery
- 0Ионная функция запуска приложения при втором нажатии
- 0Ошибка проверки PHP
- 1Выполнение расчета со всеми предыдущими значениями в пандах
- 0facebook: Как я могу получить ссылки на оригинальные фотографии из сообщений публичной группы
- 1Где или как настроить время ожидания обслуживания?
- 0Форма ввода используется в качестве параметров конструктора класса
- 0$ rootScope для установки активной вкладки не работает
- 1Получение пустых значений с использованием Javascript
- 1Two_body_problem: scipy.integrate.RK45 выдает ошибку трансляции, и scipy.integrate.LSODA никогда не входит в функцию twoBody
- 0Как я могу получить данные из двух HTML Div, используя preg_match?
- 0QFileDialog не дает выбранный файл
- 1Не удалось подключить поток во время выполнения Android
- 0OpenCV VideoCapture :: set () возвращает false, но успешно
- 0MySQL получает количество книг для каждого пользователя
- 0По центру выровнять div, который имеет float: left
- 0Как получить доступ к отдельному типу внутри std :: list <std :: list <type>>
- 0Анализ ответа ASMX с помощью PHP и SimpleXML
- 0Обновление параметров функции onblur из textarea
Приветствую! Про данную ошибку в интернете написано не очень много. В российском сегменте всемирной паутины вообще практически ничего нет — в основном вся информация расположена на англоязычных сайтах. Но, в тоже время, в комментариях на сайте меня частенько спрашивают — что это за ошибка такая? Поэтому и было решено восполнить данный информационный вакуум. Хотя, честно говоря, рассказывать-то особенно и нечего.
Итак, переходим к сути проблемы. Вот в чем она заключается — при загрузке или обновлении любого приложения из App Store (не важно, платного или бесплатного) появляется табличка с надписью: «There is a billing problem with a previous purchase…» (приблизительный перевод которой — возникли проблемы с предыдущей покупкой).
Это «стандартное» начало, а вот продолжение может быть разным:
- Please edit your billing info to correct the problem (Пожалуйста, отредактируйте платежную информацию).
- Click Purchase History to view and correct the problem. If you cancel you will not be able to buy until this billing issue has been resolved (Здесь нас просят обратить внимание на историю покупок и оплатить неоплаченные заказы).
Но при любом из этих вариантов напрашивается одинаковый вывод:
Возникли проблемы с оплатой покупок в App Store.
Так как получается, что вы должны Apple денег, то компания блокирует все платные (да и бесплатные) операции по вашей учетной записи Apple ID до момента разрешения этого вопроса.
Именно поэтому становится невозможной загрузка приложений, обновление, да и абсолютно любая другая деятельность с сервисами Apple.
Что можно сделать и как убрать надоедливое окно с ошибкой «There is a billing problem with a previous purchase…»:
- Проверьте, совпадает ли информация указанная в учетной записи Apple ID (имя, фамилия, дата рождения) с той, на которую зарегистрирована карточка. Грубо говоря, нужно чтобы владелец карты и владелец учетки был одним и тем же лицом.
- Карта должна быть активной и работоспособной — на ней есть деньги (или кредитный лимит), она не является заблокированной или просроченной.
- Нужно обратить внимание на то, есть ли в истории ваших операций неоплаченные подписки или покупки.
- Проверьте что Apple ID не отключен и не заблокирован по соображениям безопасности. Иными словами, у вас должен быть полный доступ к учетной записи — как на официальном сайте Apple (раздел «управлять Apple ID»), так и на iPhone или iPad.
- Если используется «Семейный доступ», то необходимо проверить на вышеописанные ошибки аккаунты всех (!) участников «Семьи».
В общем, повторюсь, про данную ошибку и рассказывать-то особенно нечего, ведь большинство советов сводится к одному решению — нужно проверить работоспособность и платежеспособность карты, привязанной к учетной записи.
Как правило, сразу же после внесения необходимых изменений или пополнения баланса:
- Apple моментально проверяет данные.
- «There is a billing problem…» исчезает.
Однако, если вы уверены, что все условия полностью соблюдены (а ошибка по-прежнему «на месте»!), то есть универсальный способ исправления — обращение в техническую поддержку. И не стоит этим пренебрегать — специалисты могут посмотреть вашу историю покупок и подсказать, какое приложение требует оплаты.
Другое дело, что не всегда есть желание оплачивать подписку или покупку (особенно если они произошли случайно и непреднамеренно), но это уже немного другая история…
Да и в целом, специалистам поддержки намного виднее — в чем «затык» и почему на вашем iPhone или iPad происходят проблемы с биллингом в App Store. Поверьте, не стоит недооценивать их помощь.
P.S. По уже сложившейся хорошей традиции нужно обязательно сделать две вещи — написать комментарий (если есть вопросы) и поставить «лайк» (это в любом случае). Действуем!:)
Дорогие друзья! Минутка полезной информации:
1. Вступайте в группу ВК — возможно, именно там вы сможете получить всю необходимую вам помощь!
2. Иногда я занимаюсь ерундой (запускаю стрим) — играю в игрушки в прямом эфире. Приходите, буду рад общению!
3. Вы всегда можете кинуть деньги в монитор (поддержать автора). Респект таким людям!
P.S. Моя самая искренняя благодарность (карта *9644, *4550, *0524, *9328, *1619, *6732, *6299, *4889, *1072, *9808, *7501, *6056, *7251, *4949, *6339, *6715, *4037, *2227, *8877, *7872, *5193, *0061, *7354, *6622, *9273, *5012, *1962, *1687 + перевод *8953, *2735, *2760 + без реквизитов (24.10.2021 в 18.34; 10.12.2021 в 00.31)) — очень приятно!
Привет, я Влад, core разработчик Adapty SDK для Android. Продолжаю серию статей про то, как внедрять внутренние покупки в приложение Google Play. Остальные посты можно найти по ссылкам:
-
Android in-app purchases, часть 1: конфигурация и добавление в проект.
-
Android in-app purchases, часть 2: инициализация и обработка покупок.
-
Android in-app purchases, часть 3: получение активных покупок и смена подписки.
-
Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием. — Вы тут.
Сегодня мы поговорим о кодах ошибок, которые мы можем получить от Billing Library в методе getResponseCode().
Пример того, как мы передавали ошибки в свои колбэки, можно посмотреть в этой статье. С одной ошибкой мы уже знакомы по предыдущим статьям — это USER_CANCELED, когда пользователь закрывает диалог покупки, ничего не купив. Давайте познакомимся с остальными.
Коды ошибок
Начнем с самых простых ошибок – с говорящим названием ERROR (responseCode 6) и чуть более говорящим названием DEVELOPER_ERROR (responseCode 5). Для первого случая гугл пишет в документации «Fatal error during the API action», для второго – «Invalid arguments provided to the API». Например, я смог получить DEVELOPER_ERROR, когда для запроса querySkuDetailsAsync() в билдер в setType() передал пустую строку.
Но не всё так просто. Я пошел дальше и в методе launchBillingFlow() использовал измененный SkuDetails (вытащил json из SkuDetails реального продукта, поменял в нем productId и передал в конструктор новому SkuDetails). По сути это invalid argument, и я ожидал получить DEVELOPER_ERROR, но… получил ERROR.
Отдельного упоминания заслуживает текст, который показывается в диалоге в этом кейсе — сравните английский и русский вариант:
Это, конечно, был искусственный пример. Гораздо ближе к реальности кейс, когда гугл отклонил оплату. Если при тестировании покупок с тестовой карты, о чем мы расскажем в конце статьи, в диалоге покупки выбрать «test card, always declined», вернется также ошибка ERROR, но уже с адекватным текстом.
В третьей статье, где описывалась смена подписки, мы для одного из proration mode увеличили цену годовой подписки почти в 3 раза, но не сказали, какая там должна была быть ошибка, если бы мы этого не сделали. Исправляемся.
Так как там, получается, указан неправильный proration mode, по логике мы должны получить всё ту же DEVELOPER_ERROR. Но нет, мы получаем SERVICE_UNAVAILABLE (responseCode 2). Ее же мы получаем и если указать любое левое число в качестве proration mode (это int, а не enum, нас никто не остановит), и если указать неправильный purchaseToken. Смотрим в документацию про SERVICE_UNAVAILABLE – «Network connection is down». Так, стоп…
При этом еще мы видим интересный диалог.
Что еще любопытно – в кейсе с ERROR при закрытии диалога НЕ через кнопку «ОК» (то есть, теми способами, которые интерпретируются как возврат назад) в onPurchasesUpdated() пришло, собственно, ERROR, а в случае с SERVICE_UNAVAILABLE в аналогичном кейсе приходит USER_CANCELED (но если нажать «ОК» в диалоге, то мы, как и ожидали, получим SERVICE_UNAVAILABLE).
Ну и в случае с отсутствием интернета SERVICE_UNAVAILABLE тоже приходит, тут не соврали.
Вот остальные коды ошибок с небольшими комментариями, так сказать, honorable mentions.
-
BILLING_UNAVAILABLE (responseCode 3). Гугл поясняет, что «Billing API version is not supported for the type requested». Я смог воспроизвести эту ошибку, разлогинившись из Google-аккаунта, а также на Хуавее без Google Play Services. Возможно, она также воспроизведется на старых телефонах, где не обновляли Google Play.
-
SERVICE_DISCONNECTED (responseCode -1). Приложение иногда дисконнектится от сервиса Google Play. Это может произойти, если Play Store вдруг решит обновиться. Поэтому лучше перестраховаться и коннектиться перед каждым вызовом методов Billing Library, как в предыдущих статьях. А еще мы с гуглом советуем добавить какую-нибудь retry policy, если эта ошибка всё же придет в ответе.
-
SERVICE_TIMEOUT (responseCode -3). Название говорит само за себя — мы слишком долго ждали ответ от Google Play.
-
FEATURE NOT SUPPORTED (responseCode -2). В классе BillingClient есть пять констант FeatureType. Их доступность на данном устройстве можно проверять с помощью метода billingClient.isFeatureSupported(BillingClient.FeatureType.НужнаяФича). У меня на телефоне (Xiaomi Mi A2 Lite) FEATURE_NOT_SUPPORTED вернулось только для SUBSCRIPTIONS_ON_VR. При этом для IN_APP_ITEMS_ON_VR, как и для всех остальных фич, вернулось OK.
-
ITEM_NOT_OWNED (responseCode 8). Возникает при попытке законсьюмить покупку, которой у нас нет. Например, повторно после успешного консьюма.
-
ITEM_ALREADY_OWNED (responseCode 7). А тут наоборот – при попытке купить продукт, который у нас уже есть. В таком кейсе просто нужно обновить UI и сделать кнопку покупки некликабельной.
Самая популярная ошибка
Последняя и, наверное, самая популярная ошибка в начале пути внедрения in-app purchases — это ITEM_UNAVAILABLE (responseCode 4). Она говорит о том, что продукт недоступен для покупки, но не говорит, почему. А причины могут быть самые разные: от тестирования на неправильном аккаунте или неправильной сборке до покупки неактивированного продукта.
Вот чек-лист, что нужно сделать, чтобы избежать ее при тестировании:
-
Отправить в ваш test track сборку с Billing Library. Это обязательное условие — при этом вы можете тестировать и на дебажных сборках с таким же applicationId, но важно, чтобы хотя бы один раз сборка с Billing Library была загружена в Play Console.
-
Добавить в этот test track гугл-аккаунты тестировщиков, что особенно актуально для internal testing или закрытой альфы/беты. Там же будет ссылка в разделе How testers join your test, по которой тестировщики должны будут принять приглашение.
-
Покупать можно только активированный продукт. После создания продукта в Play Console есть кнопка activate, более детально процесс создания продукта мы описывали в первой статье.
-
Удостовериться, что тестирование на устройстве проходит с гугл-аккаунта, который является тестировщиком. Очевидный пункт, но бывает всякое, и это тоже нужно проверить, если вы получили такую ошибку.
-
applicationId
сборки, с которой тестируется покупка, должно полностью совпадать с applicationId из Play Console. Это особенно важно для тех, у кого добавляется суффикс в дебажных сборках. -
Добавить email-адреса тестировщиков в раздел Setup → License Testing в левом меню аккаунта (не приложения), чтобы они покупали продукты бесплатно с тестовой карты, а не с реальной. Еще один плюс, что подписки в данном случае будут иметь тестовую длительность. Не связано с этой ошибкой, но тоже полезное знание.
Заключение
Ошибки способны сильно усложнить работу, поэтому всегда важно понимать, как они могут возникнуть. Учитывая, сколько шагов нужно пройти, чтобы получить доступ к продуктам, проще всего словить ITEM_UNAVAILABLE. Поэтому я надеюсь, что мой чек-лист вам поможет.
Про Adapty
Для более простой работы с ошибками советую попробовать Adapty SDK для внедрения внутренних покупок в приложения. Кроме технической части, Adapty даёт много преимуществ:
-
Встроенная аналитика позволяет быстро понять основные метрики приложения.
-
Когортный анализ отвечает на вопрос, как быстро сходится экономика.
-
А/Б тесты увеличивают выручку приложения.
-
Интеграции с внешними системами позволяют отправлять транзакции в сервисы атрибуции и продуктовой аналитики.
-
Промо-кампании уменьшают отток аудитории.
-
Open source SDK позволяет интегрировать подписки в приложение за несколько часов.
-
Серверная валидация и API для работы с другими платформами.
Познакомьтесь подробнее с этими возможностями, чтобы быстрее внедрить подписки в своё приложение и улучшить конверсии.
When Google Play has not been signed in, running BillingClient.startConnection() results in BillingResult returned by onBillingSetupFinished() showing billingResult.getDebugMessage():
Google Play In-app Billing API version is less than 3
This error is gone as soon as Google Play is signed in.
Is there a way to get an accurate error for this situation?
asked Dec 11, 2019 at 14:56
1
The message indicates that you are using a Google Play Developer API that is lower than v3.
The Google Play Developer API will only support the v3 endpoint after 1 December, 2019. Here is the blog post:
https://android-developers.googleblog.com/2019/03/changes-to-google-play-developer-api.html
For more context, the Google Play Billing Library (currently 2.1.0) is the client API used in your Android app.
The Google Play Developer API (currently v3) is the server API used for managing purchases and managing your app on Google Play.
answered Dec 19, 2019 at 18:53
CarenCaren
1,3382 gold badges13 silver badges22 bronze badges
1
When Google Play has not been signed in, running BillingClient.startConnection() results in BillingResult returned by onBillingSetupFinished() showing billingResult.getDebugMessage():
Google Play In-app Billing API version is less than 3
This error is gone as soon as Google Play is signed in.
Is there a way to get an accurate error for this situation?
asked Dec 11, 2019 at 14:56
1
The message indicates that you are using a Google Play Developer API that is lower than v3.
The Google Play Developer API will only support the v3 endpoint after 1 December, 2019. Here is the blog post:
https://android-developers.googleblog.com/2019/03/changes-to-google-play-developer-api.html
For more context, the Google Play Billing Library (currently 2.1.0) is the client API used in your Android app.
The Google Play Developer API (currently v3) is the server API used for managing purchases and managing your app on Google Play.
answered Dec 19, 2019 at 18:53
CarenCaren
1,3382 gold badges13 silver badges22 bronze badges
1
Я использую код 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)
8 ответов
Лучший ответ
Как мы видим непосредственно в код настройки IabHElper образца, предоставленного Google, ошибка означает:
«Платежная служба недоступна на устройстве».
Как вы можете прочитать здесь, эта ошибка означает
Billing API version is not supported for the type requested
Это Справочник по биллингу в приложении (IAB версии 3), поэтому ошибка означает, что IAB v3 не установлен на устройстве.
Фактически это означает, что у пользователя есть учетная запись Google и, вероятно, также служба биллинга в приложении, но у нее нет последней версии. Это происходит на старых устройствах, где пользователь никогда ничего не обновляет. Раньше это были устройства, на которых вы могли видеть старое приложение Market вместо приложения Play.
Таким образом, ошибка, которую вы должны показать пользователю, и тест, который вы должны выполнить, заключается не в том, есть ли на устройстве учетная запись Google, а в том, что на нем установлены и должным образом обновлены службы 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."));
}
}
Это означает, что приложению не удалось подключиться к службе на устройстве, поскольку диспетчер пакетов даже не знает об этом . Это единственный вариант, который может вызвать эту ошибку. И что это значит, что он не смог подключиться к услуге? Это означает одно из следующих:
- На устройстве не установлена служба.
- У него старая версия, поскольку мы знаем, что в последних версиях игрового магазина используется IAB v3.
Итак, ваша ошибка может означать только одно из них, что для вас означает, что вы должны показать пользователю сообщение типа «У вас не установлены службы Google Play или вам необходимо обновить их». И нет других возможностей получить эту ошибку.
Но, если вы хотите, чтобы пользователям было проще, вы можете сказать, что им нужно обновить приложение Google Play до последней версии . И это заставит все работать как шарм.
38
Null
16 Апр 2021 в 11:42
Эта ошибка также возникает после того, как пользователь удаляет свою учетную запись Google с устройства.
17
pareshgoel
30 Июл 2014 в 14:22
Войдите в Play Маркет с любой учетной записью.
После входа в систему биллинг работает даже на Android Studio Emulator.
8
Babken Vardanyan
7 Апр 2018 в 09:58
Основная вероятность вашей проблемы BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE
заключается в том, что в некоторых странах покупка в приложении по-прежнему не разрешена, например в Сербии и многих других странах.
Таким образом, любой пользователь из страны, где Google Play не поддерживает покупку в приложении, получит BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE
.
Это будет меньше шансов, что у пользователя не установлена обновленная служба Google Play на телефоне, поэтому не беспокойтесь об этом случае.
7
N Sharma
22 Янв 2014 в 10:52
Попробуйте эти хаки
Удалите кеш, данные и обновления для приложения для воспроизведения, перезапустите приложение для воспроизведения снова, оно должно работать! или попробуйте установить последние обновления (если они исправлены)
FYI :
Только имейте в виду:
-
IABv3 встроен в сервисы Google Play, поэтому требуется обновление до APK Play Services.
-
Версия V2 была встроена в сам клиент магазина Play. Проблема с кешем / лицензионным соглашением не имеет прямого отношения к IAB, это связано с настройкой Play Сервисы (и, надеюсь, не нужны большинству пользователей, часть кеша в любом случае).
-
Обидно быть в этот переходный период, когда у Play Services есть быть обновленным, прежде чем ваше приложение сможет использовать это в своих интересах, но я думаю большинство людей согласятся, что это лучше, чем ждать ОС Обновить.’
См. Эту ссылку: отчет об ошибке, сообщение в Google+
2
LOG_TAG
21 Янв 2014 в 12:20
Иногда, если вы не аутентифицировали свое устройство с помощью учетной записи Google, может появиться эта ошибка.
1
User2364902
7 Дек 2016 в 07:21
Для тех, кто все еще сталкивается с этой проблемой, в большинстве случаев iab не поддерживается в вашей стране, как сказал Уильямс. Вы можете использовать VPN, чтобы заставить его работать.
1
Drilon Blakqori
4 Апр 2017 в 00:33
Если вы находитесь в Тонге (как я) или в любой другой стране, где вы не можете покупать приложения в Google Play, вы должны использовать VPN для проверки биллинга. В противном случае вы получите эту ошибку.
0
John T
1 Июл 2019 в 08:44
Иногда люди сталкиваются с ошибкой инициализации биллинга, не до конца понимая, что это за ошибка и как её решить. Чтобы в этом разобраться для начала необходимо понять, что же такое биллинг.
Что такое биллинг?
Биллинг – (от английского «bill» — счёт) это специальная система, выставляющая различные счета клиентам. Данные счета выставляются за использование каких-либо услуг компании или же за покупку товаров. В наше время биллинг в компаниях является крайне сложным комплексом технологий и программ, которые помогают вести учёт всех предоставленных услуг, устанавливать определённые тарифы и, в конечном итоге, отправлять клиентам счета, учитывая все акции и скидки.
В сотовой связи биллинг работает в реальном времени. То есть со счёта клиента денежные средства списываются моментально. За это клиент сразу же получает необходимые ему услуги (например, Интернет-трафик, SMS и др.). Чтобы работать в таком режиме, система должна быть очень надёжной, а стабильность работы не должна прерываться ни на секунду.
Ошибки инициализации биллинга
При покупке различного рода услуг у операторов связи (телекоммуникации) и даже при покупке различного контента в Интернете может возникнуть ошибка биллинга. Такие ошибки при выставлении счёта не дают возможность приобрести необходимые человеку услуги или товары, однако есть несколько способов для исправления этой ошибки.
Совершить покупку в другое время
Ошибка биллинга может появиться по разным причинам. Если человек сделал много запросов на приобретение товара или услуг, которые были отклонены, то скорее всего возникнет данная ошибка. К тому же, банковская карта, с которой должна производиться оплата может быть помечена как «Подозрительный способ оплаты». Также необходимо внимательно посмотреть, какой регион указан при покупке. Если регион указан неверно, то скорее всего появится ошибка биллинга.
В таких случаях клиенту необходимо подождать 1-2 суток и попытаться совершить покупку снова. Чаще всего достаточно подождать 24 часа, после чего совершение покупки не составит проблем.
Проверить правильность платёжной информации
Возможно ошибка возникает из-за неправильной платёжной информации клиента. Ему необходимо тщательно проверить все данные, которые он указывал. Это может быть регион, способ оплаты, банковская карта и другие данные. Из-за неправильно указанных данных система не может выставить счёт, выдавая такие ошибки биллинга.
Очистка кэша и изменение личных данных
Накопленный кэш зачастую является проблемой некорректной работы. Чтобы исправить это, достаточно просто удалить весь кэш с устройства. Если неполадки не устранились, то можно попробовать удалить личные данные и ввести их заново. Для обновления информации в системе может потребоваться от 3 до 48 часов. После этого можно заново проводить платёжные операции.
- Добавить свои
Оставьте свой комментарий
10 ответов
Совершенство! Я потратил много времени, пытаясь выяснить, почему я получаю ошибку. Ошибка аутентификации. Необходимо войти в свою учетную запись google. И через много часов я узнал — я пытался получить доступ к неправильному идентификатору элемента с консоли. В элементе подписки на консоль разработчика был включен «премиум», и я попытался получить доступ к элементу «premium_version». Глупая ошибка, но ошибка в google абсолютно не информативна. Надеюсь, что это поможет
Alex Perevozchykov
15 янв. 2015, в 12:30
Поделиться
В моем случае произошло то, что правильный продукт был настроен на консоли, однако он не был активирован.
nobre
10 июль 2015, в 21:56
Поделиться
Если кто-нибудь получит вышеупомянутое всплывающее окно, вы можете повторно проверить следующие шаги, потому что, к сожалению, это всплывающее окно google недостаточно информативно для подсказки.
- Убедитесь, что вы правильно используете идентификатор продукта (он должен быть таким же, как и на консоли разработчика).
- Перед тестированием убедитесь, что вы активировали продукт на консоли разработчика. Это может занять некоторое время, поэтому подождите, пока он будет готов.
- Убедитесь, что версия вашего приложения опубликована в Beta, Alpha или Production
- Не забудьте добавить тестовые письма в список тестировщиков (Настройки → Список тестировщиков → Создать список). Тестирование электронной почты должно отличаться от учетной записи издателя.
- Если в этом ничего не работает, попробуйте удалить учетную запись google на своем телефоне и добавить обратно и очистить данные в Play Маркете.
Надеюсь, что это поможет:)
Sachini Samarasinghe
30 дек. 2016, в 06:28
Поделиться
В моем случае мой base64EncodedPublicKey был неправильным, а также мой продукт inapp был неактивным. Убедитесь, что идентификатор продукта ur inapp такой же, как в консоли.
Fazal
12 март 2016, в 21:41
Поделиться
Я боролся с этой ошибкой часами. Мои идентификаторы продукта были правильными, приложение было опубликовано в Alpha, я активировал список тестеров Alpha, присоединившись к ссылке выбора, но ничего не работало.
В конце концов я обнаружил, что вы не можете использовать ту же учетную запись Gmail, которая используется для консоли разработчика. Вот и все, добавил еще одну учетную запись gmail в качестве тестера и использовал ее для загрузки приложения и больше ошибок аутентификации.
Кроме того, только заметка, вносящая изменения в приложение и построение отладочной версии, вызвала повторную ошибку. Могут использоваться только подписанные APK.
Stevo
02 нояб. 2016, в 22:49
Поделиться
Решено. Это была ошибка только Id продукта. Идентификатор продукта из Play-store и в приложении SKU_NAME должен быть таким же для биллинга приложений.
Это не упоминается правильно в проекте примера iab, который является productId
i.e SKU_GAS = «газ» и SKU_PREMIUM = «premium» в проекте
затем
«газ» и «премиум» должен быть доступен в play-store как productId.
Lokesh Tiwari
02 нояб. 2015, в 11:02
Поделиться
Если вы используете образцы Google (например, тривиальный диск), это может произойти из-за старого файла .aidl. Получите последнюю версию, чтобы протестировать ваше приложение.
VSB
21 авг. 2016, в 17:32
Поделиться
Убедитесь, что вы создаете и подписываете приложение с тем же хранилищем ключей, что вы подписали APK, который был загружен на бета-канал Google Play.
Я допустил ошибку при подписании с разными Keystores и не заметил этого.
nightfixed
18 март 2016, в 18:27
Поделиться
Убедитесь, что вы вошли в Play Store с тестовой учетной записью. Перезагрузите телефон. Он должен работать, по крайней мере, в моем случае необходим перезапуск.
erdomester
27 дек. 2015, в 19:21
Поделиться
Я столкнулся с одной и той же проблемой, используя правильный идентификатор продукта для каждого элемента «Купить приложение». Мое приложение было готово к публикации в Google Play (с APK в альфа-тестировании), но оно не было отправлено. Решение заключалось в том, чтобы отправить приложение для просмотра командой разработчиков Google Play Developer.
Надеюсь, это поможет вам!
Javier S.
11 окт. 2015, в 00:17
Поделиться
Ещё вопросы
- 0jQuery при нажатии prepend divs в начале «списка»
- 0HTML / CSS ссылки на Facebook
- 1Что является альтернативой для имитации функции «создать представление» в neo4j?
- 0Загрузить изображение в ASP.NET
- 0PHP в JavaScript с помощью кнопки «Отправить»
- 1Manifest Merger Ошибка в проекте
- 0MySQL конвертировать строку в дату с миллисекундами
- 1Панды, как добавить детали в CSV, прежде чем писать фрейм данных
- 1Как можно использовать оператор равенства для байтовых массивов в Linq-to-Entities во время модульного тестирования?
- 1Настройка SFML.net 2.1?
- 0Вложенное дочернее состояние с помощью ui-router
- 1Как распечатать массив объектов, который имеет параметры?
- 1Материал шейдера для управления памятью three.js
- 1Извлечение значений строк данных
- 1Это неправильное использование синглтона?
- 0Значение массива не работает
- 1Является ли View или ViewModel ответственным за преобразование данных из модели, представляемой в пользовательском интерфейсе?
- 0Как я могу обновить ту же запись SqlServer внутри цикла sqlsrv_fetch_array?
- 0Chrome DevTools игнорирует изображение с «facebook» в имени файла
- 0Является ли денормализованный стол приемлемым вариантом в этом случае?
- 1Поиск не является ошибкой функции
- 1Tomcat Виртуальный хост и Wildcard DNS соответствия
- 1Отправить электронную почту через Python с помощью Outlook 2016, не открывая его
- 0ошибка: magic.h: нет такого файла или каталога (MacOS XV 10.6.8)
- 0Как написать HTML-код внутри DIV после отправки запроса POST в AngularJs
- 0Получить все результаты из первой таблицы в соединении MySQL
- 1Не удается запустить проекты модульного тестирования .NET 3.5 из-за VS2012?
- 0Эффект аккордеона при наведении мыши с переходами шаток
- 0Угловые шаблоны не загружаются
- 1Android загружает значения из файла строк по умолчанию (strings.xml) после изменения локали во второй раз
- 1Как создать AWC по умолчанию в AWS через aws-java-sdk
- 1Невозможно запустить тест из-за appium appiumDriver
- 0У ребенка от родителя с положением абсолютного или фиксированного растяжения до полной высоты области просмотра
- 0Запрос для получения студентов и оценки SQL
- 0Удаление замораживающей панели после сбоя проверки на клиенте с использованием jQuery
- 0Угловой запрос http
- 0Как отправить список элементов с помощью ajax и jquery и как извлечь данные из него в сценарии perl, чтобы его можно было добавить в базу данных
- 1Android NSD: почему тип сервиса не совпадает
- 0Как Yii SQL Нравится
- 1Как использовать + = (Добавить И) с пониманием списка
- 1Менеджер тегов Google — Получить родительский элемент в переменной javascript
- 0почему это JQuery не добавляет правильные значения в моей БД
- 0Загрузка итога при загрузке формы
- 0Перезапись URL на удаленном сайте
- 0Центрирование растрового текста в прямоугольнике с помощью OpenGL
- 1React router добавляет страницу наконец при маршрутизации
- 0Создать Kubernetes Pod с MySQL и PHP?
- 0MySQLdb Ошибка подключения к базе данных
- 0Выбор столбцов для вставки в таблицу с условием где
- 0Упорядочение двух таблиц по одной дате с PHP, MYSQL (PDO)
Ошибка инициализации биллинга что это такое
Иногда люди сталкиваются с ошибкой инициализации биллинга, не до конца понимая, что это за ошибка и как её решить. Чтобы в этом разобраться для начала необходимо понять, что же такое биллинг.
Что такое биллинг?
Биллинг – (от английского «bill» — счёт) это специальная система, выставляющая различные счета клиентам. Данные счета выставляются за использование каких-либо услуг компании или же за покупку товаров. В наше время биллинг в компаниях является крайне сложным комплексом технологий и программ, которые помогают вести учёт всех предоставленных услуг, устанавливать определённые тарифы и, в конечном итоге, отправлять клиентам счета, учитывая все акции и скидки.
В сотовой связи биллинг работает в реальном времени. То есть со счёта клиента денежные средства списываются моментально. За это клиент сразу же получает необходимые ему услуги (например, Интернет-трафик, SMS и др.). Чтобы работать в таком режиме, система должна быть очень надёжной, а стабильность работы не должна прерываться ни на секунду.
Ошибки инициализации биллинга
При покупке различного рода услуг у операторов связи (телекоммуникации) и даже при покупке различного контента в Интернете может возникнуть ошибка биллинга. Такие ошибки при выставлении счёта не дают возможность приобрести необходимые человеку услуги или товары, однако есть несколько способов для исправления этой ошибки.
Совершить покупку в другое время
Ошибка биллинга может появиться по разным причинам. Если человек сделал много запросов на приобретение товара или услуг, которые были отклонены, то скорее всего возникнет данная ошибка. К тому же, банковская карта, с которой должна производиться оплата может быть помечена как «Подозрительный способ оплаты». Также необходимо внимательно посмотреть, какой регион указан при покупке. Если регион указан неверно, то скорее всего появится ошибка биллинга.
В таких случаях клиенту необходимо подождать 1-2 суток и попытаться совершить покупку снова. Чаще всего достаточно подождать 24 часа, после чего совершение покупки не составит проблем.
Проверить правильность платёжной информации
Возможно ошибка возникает из-за неправильной платёжной информации клиента. Ему необходимо тщательно проверить все данные, которые он указывал. Это может быть регион, способ оплаты, банковская карта и другие данные. Из-за неправильно указанных данных система не может выставить счёт, выдавая такие ошибки биллинга.
Очистка кэша и изменение личных данных
Накопленный кэш зачастую является проблемой некорректной работы. Чтобы исправить это, достаточно просто удалить весь кэш с устройства. Если неполадки не устранились, то можно попробовать удалить личные данные и ввести их заново. Для обновления информации в системе может потребоваться от 3 до 48 часов. После этого можно заново проводить платёжные операции.
Ошибка биллинга Xbox
Вы можете приобрести все виды контента онлайн с вашим Xbox, такие как фильмы, игры и DLC. К сожалению, при покупке мультимедийного контента в Интернете могут возникать определенные ошибки, и на консоли может появиться ошибка биллинга Xbox. Ошибки при выставлении счетов могут помешать вам покупать контент в Интернете, но есть несколько способов исправить эти типы ошибок.
Ошибка биллинга Xbox, как это исправить?
Исправлено – ошибка выставления счетов Xbox
Решение 1. Изменить платежную информацию
Если вы получили ошибку выставления счетов на Xbox, вы можете попытаться изменить свою платежную информацию. Вы можете легко сделать это, используя свой веб-браузер или напрямую из своего Xbox One или Xbox 360. Чтобы изменить платежную информацию в своем веб-браузере, выполните следующие действия:
- Войдите в свою учетную запись Microsoft в любом веб-браузере.
- Перейдите на страницу Оплата и оплата и выберите Информация для выставления счета .
- Теперь выберите Изменить профиль и внесите необходимые изменения в свой платежный адрес.
Чтобы изменить платежную информацию в Xbox One, выполните следующие действия.
- Прокрутите влево от экрана Главная , чтобы открыть Руководство.
- Выберите Настройки> Все настройки .
- В разделе Аккаунт выберите Оплата и выставление счетов .
- Теперь выберите Изменить платежный адрес .
- Введите свою платежную информацию. Помните, что вы можете пропустить платежную информацию, которую не хотите обновлять, нажав B на контроллере и выбрав Далее .
- Теперь выберите Сохранить информацию , чтобы сохранить изменения.
Вы также можете изменить свою платежную информацию на Xbox 360, выполнив следующие действия:
- Убедитесь, что вы вошли в консоль.
- Перейдите в Настройки и выберите Аккаунт .
- Выберите Управление вариантами оплаты .
- Выберите способ оплаты, который вы хотите обновить.
- Обновите платежную информацию.
- Выберите ОК , чтобы сохранить изменения.
После внесения необходимых изменений в платежную информацию попробуйте совершить покупку еще раз.
- ЧИТАЙТЕ ТАКЖЕ: битовый поток аудио поступает в Xbox One
Решение 2. Проверьте состояние служб Xbox Live
Xbox Live использует определенные службы для правильной работы, и если одна из этих служб не работает, вы можете столкнуться со всевозможными ошибками выставления счетов. Чтобы проверить состояние служб Xbox Live, просто посетите веб-сайт Xbox. Если служба Покупка и использование контента запущена, вы сможете совершать покупки через Интернет. Если эта служба не работает, вам придется подождать, пока Microsoft исправит проблему.
Решение 3. Убедитесь, что у вас нет остатка на счету
Ошибки выставления счета, такие как 80153021, могут появиться, если у вас есть баланс на счету. Если это так, вы не сможете совершать покупки до тех пор, пока не произведете оплату. Для этого выполните следующие действия:
- Войдите в свою учетную запись Microsoft в любом веб-браузере.
- Перейдите на страницу Услуги и подписки .
- Выберите вариант Оплатить сейчас и следуйте инструкциям на экране, чтобы оплатить остаток.
После урегулирования баланса необходимо проверить, устранена ли ошибка.
Решение 4. Проверьте, соответствует ли ваша страна или регион вашей стране или региону PayPal
Если вы недавно переехали в другое место или страну, у вас могут возникнуть ошибки при выставлении счетов на консоли, пока вы не измените настройки своего региона. Изменить свой регион на Xbox One очень просто, и вы можете сделать это, выполнив следующие действия:
- Войдите в свой Xbox One.
- На экране Домой прокрутите влево, чтобы открыть Руководство.
- Выберите Настройки> Все настройки .
- Выберите Система .
- Теперь выберите Язык и местоположение .
- Выберите новое местоположение в списке, а затем выберите Перезагрузить сейчас .
Чтобы изменить свой регион на Xbox 360, выполните следующие действия:
- Войдите в свою консоль.
- Перейдите в Настройки и выберите Система .
- Выберите Настройки консоли .
- Выберите Язык и языковой стандарт> Языковой стандарт .
- Выберите желаемый язык.
Как видите, изменить свой регион или локаль просто, но есть определенные ограничения, о которых вы должны знать. Во-первых, вы можете менять свой регион только раз в три месяца, так что имейте это в виду. Кроме того, вы не сможете изменить свой регион, если ваша учетная запись в настоящее время приостановлена или если у вас есть остаток средств на вашей подписке Xbox Live.Вы также должны знать, что деньги с вашей учетной записи Microsoft не будут перемещены, если вы решите изменить свой регион, поэтому обязательно потратьте их. Наконец, некоторые службы могут быть недоступны в некоторых регионах, так что имейте это в виду.
- ЧИТАЙТЕ ТАКЖЕ: поддержка Dolby Atmos будет представлена для Xbox One S
Решение 5. Обратитесь в свой банк или финансовое учреждение .
Иногда вы можете получить ошибки выставления счетов из-за проблем с вашей кредитной картой. Может случиться, что ваша карта не активирована или она не авторизована для онлайн-покупок или автоматического выставления счетов. Если это так, вам следует обратиться в свое финансовое учреждение и спросить их, могут ли они решить проблему.
Решение 6. Попробуйте совершить покупку в другое время
Вы можете получить ошибки при выставлении счета, если вы сделали несколько запросов на покупку, которые были отклонены. Кроме того, ваша карта может быть помечена как подозрительный способ оплаты, что может привести к возникновению подобных проблем. Использование неверного региона также может привести к ошибкам выставления счетов, и в этом случае подождите от 24 до 48 часов и попробуйте совершить покупку еще раз.
Решение 7. Используйте подарочную карту Xbox
Если у вас возникли ошибки при выставлении счетов, вы можете рассмотреть возможность использования подарочной карты Xbox. Просто купите его и добавьте в свой аккаунт. Имейте в виду, что не все покупки работают с подарочными картами Xbox, поэтому обязательно проверьте, может ли желаемая покупка работать с подарочной картой.
Решение 8. Добавьте новый способ оплаты
Если у вас есть проблемы с ошибками платежной информации, вы можете рассмотреть возможность использования PayPal для покупки контента в Интернете. Чтобы добавить новый способ оплаты на Xbox One, выполните следующие действия:
- Войдите в консоль с учетной записью Microsoft.
- На экране Домой прокрутите влево, чтобы открыть Руководство.
- Выберите Настройки> Все настройки .
- Выберите Аккаунт> Оплата и выставление счетов .
- Выберите Добавить кредитную карту или Добавить PayPal и следуйте инструкциям на экране.
- Следуйте инструкциям на экране и введите необходимую информацию.
Чтобы добавить новый способ оплаты на Xbox 360, выполните следующие действия.
- Убедитесь, что вы вошли в свою учетную запись Microsoft.
- Перейдите в Настройки> Аккаунт .
- Выберите Управление вариантами оплаты .
- Выберите один из следующих вариантов: Добавить кредитную карту или Добавить PayPal и следуйте инструкциям на экране.
- Читайте также: Microsoft предлагает бесплатные игры для Xbox One в ноябре
Решение 9. Проверьте правильность информации о кредитной карте .
Ошибка при выставлении счета может возникнуть, если информация о вашей кредитной карте неверна или срок действия вашей кредитной карты истек. Чтобы обновить способ оплаты в Xbox One, выполните следующие действия.
- Войдите в консоль с учетной записью Microsoft.
- Прокрутите влево на экране Домой , чтобы открыть Руководство.
- Выберите Настройки> Все настройки .
- Выберите Аккаунт> Оплата и выставление счетов .
- Прокрутите вниз до варианта оплаты, который вы хотите обновить, и выберите Изменить .
- Обновите информацию о способе оплаты и выберите Сохранить информацию , как только вы закончите.
Чтобы сделать это на Xbox 360, выполните следующие действия:
- Войдите в свою учетную запись Microsoft на консоли.
- Перейдите в Настройки> Управление аккаунтом .
- На странице Управление аккаунтом выберите Управление вариантами оплаты .
- Перейдите на страницу Ваше членство и выберите членство, которое вы хотите обновить.
- Выберите Изменить параметры оплаты .
- Необязательно: Возможно, вам придется выбрать Изменить членство , чтобы выбрать план членства.
- После этого введите новый способ оплаты и выберите ОК .
Вы также можете изменить способ оплаты в своей учетной записи Microsoft в любом веб-браузере, если эти методы не работают для вас. Для этого выполните следующие действия:
- Войдите в свою учетную запись Microsoft с помощью любого веб-браузера.
- Перейдите на страницу Оплата и оплата и выберите Способы оплаты .
- Выберите способ оплаты и выберите Изменить информацию .
- Теперь измените нужную информацию и нажмите Далее .
Решение 10. Проверьте, активирована ли карта предоплаты .
Пользователи сообщали об ошибке биллинга 801613FB при использовании карты предоплаты, и для исправления этой ошибки необходимо проверить, активирована ли карта предоплаты. По словам пользователей, активация предоплаченной карты может длиться до 24 часов.Если проблема не устраняется через 24 часа, мы рекомендуем вам обратиться к продавцу и проверить, активирована ли ваша карта.
Решение 11. Проверьте подключение к Интернету .
Иногда ошибки выставления счетов могут возникать из-за проблем с вашим интернет-соединением, но вы должны быть в состоянии исправить их, просто проверив ваше интернет-соединение. Чтобы сделать это на Xbox One, выполните следующие действия:
- Откройте Настройки и выберите Сеть .
- В разделе Устранение неполадок выберите параметр Проверить сетевое подключение .
- После завершения сканирования выберите параметр Проверить многопользовательское соединение .
Чтобы проверить ваше соединение на Xbox 360, сделайте следующее:
- Нажмите кнопку Руководство и перейдите в Настройки .
- Выберите Настройки системы> Настройки сети .
- Выберите Проводная сеть или название вашей беспроводной сети.
- Выберите Проверить подключение к Xbox Live .
- ЧИТАЙТЕ ТАКЖЕ: 8 Zip приходит в Xbox One, чтобы помочь вам архивировать файлы
Решение 12. Удалите и снова загрузите свой профиль .
Возможно, вы сможете исправить некоторые ошибки при выставлении счетов, просто удалив и загрузив свой профиль Xbox. Это простая процедура, и для ее выполнения на Xbox One необходимо выполнить следующие действия:
- Прокрутите влево на экране Домой , чтобы открыть Руководство.
- Выберите Настройки> Все настройки .
- Выберите Аккаунт> Удалитьаккаунты .
- Теперь выберите учетную запись, которую вы хотите удалить.
- Выберите Удалить для подтверждения.
- По завершении выберите Закрыть .
Чтобы добавить учетную запись на Xbox One, сделайте следующее:
- Прокрутите влево на экране Домой , чтобы открыть Руководство.
- На вкладке Войти полностью переместитесь вниз и выберите Добавить и управлять .
- Введите данные для входа в свою учетную запись Microsoft и выберите Enter .
- Прочитайте Соглашение об обслуживании Microsoft и Заявление о конфиденциальности и выберите Я принимаю .
- Следуйте инструкциям на экране, чтобы настроить параметры входа и безопасности.
Чтобы удалить учетную запись Xbox на Xbox 360, выполните следующие действия.
- Перейдите в Настройки> Система .
- Выберите Хранилище> Добавить устройства .
- Выберите Профили геймеров .
- Выберите профиль Xbox Live, который вы хотите удалить.
- Выберите Удалить> Удалить только профиль . Эта опция удалит ваш профиль, но сохранит ваши сохраненные игры и достижения.
Чтобы загрузить свой профиль Xbox Live на Xbox 360, выполните следующие действия.
- Нажмите кнопку Руководство .
- Выберите Загрузить профиль .
- Введите данные для входа в учетную запись Microsoft.
- Выберите устройство хранения для вашего профиля.
После удаления и повторной загрузки вашего профиля проверьте, появляется ли ошибка при выставлении счета.
Решение 13 – очистите кеш
Вы можете исправить некоторые ошибки биллинга, просто очистив кеш. Чтобы сделать это на Xbox 360, выполните следующие действия:
- Нажмите кнопку Руководство на контроллере.
- Перейдите в Настройки> Системные настройки .
- Выберите Хранилище или Память .
- Выберите любое устройство хранения и нажмите Y на контроллере.
- Выберите Очистить системный кэш .
- Когда появится подтверждающее сообщение, выберите Да .
- Перезагрузите консоль.
На Xbox One эта процедура немного отличается, но вы можете сделать это, выполнив следующие действия:
- Нажмите кнопку питания на консоли и удерживайте ее, пока консоль не выключится.
- Отключите кабель питания от консоли.
- Нажмите кнопку питания на консоли несколько раз, чтобы полностью разрядить аккумулятор.
- Снова подключите кабель питания к консоли.
- Подождите, пока индикатор на блоке питания не изменится с белого на оранжевый.
- Нажмите кнопку питания еще раз, чтобы включить консоль.
После очистки кэша проверьте, устранена ли ошибка биллинга.
Ошибки при выставлении счетов могут помешать вам покупать онлайн-контент, но вы сможете исправить эти ошибки, просто воспользовавшись одним из наших решений.
Биллинг мобильного телефона, детализация и отслеживание абонента
Биллинг мобильных телефонов – это сложный процесс, для которого необходимы современные, качественные и мощные средства. Программное обеспечение, банковская и юридическая поддержка – это составляющие новых технологий. Именно из-за этого программа биллинга телефона существует только в больших компаниях, которые занимаются электронной коммерцией и, конечно, в региональных сотовых компаниях.
Функция этой новой системы в том, что она рассчитывает цену за услуги мобильной связи отдельно для каждого человека. Программы сохраняют информацию о времени, когда пользователь звонил, продолжительности и других характеристиках разговоров за определенный период (за год или полгода). Биллинг телефона предполагает профессиональное программное обеспечение, которое используется в бухгалтерских расчетах телекоммуникационных операторов.
Как работает абонентская сотовая связь?
- абонент включая телефон, выходит на связь
- сигнал от телефона (прием-передатчика) проходит на антенну станции мобильной связи
- место пребывания человека с телефоном, примерно, определено
- погрешность зависит от геологических особенностей местности, количества станций сотовой связи на определенном квадрате региона
Вероятность нахождения человека равна 100 процентам, или почти 100 процентам. Ни один поиск не проходит без данных, предоставленных в результате анализа биллинга . В биллинг входит анализ входящих, исходящих вызовов, сообщений, история звонков, продолжительность, цена. Операторы хранят полную тайну личных данных абонента и детализации звонков, согласно закона о телекоммуникации и связи, защите личных данных пользователей. Данные билинг – системы могут быть предоставлены правоохранительным органам по факту расследования преступлений, по решению суда.
Самому абоненту заниматься биллингом, без разрешения соответствующих органов, запрещено.Биллинг , очень действенное, сильное, но дорогостоящее средство поиска.
Видео
Абонент всегда доступен
Мобильный телефон – это большое достижение человека, новая технология, которая продвинула прогресс. К сожалению, этой технологией могут пользоваться и не во благо, так как сотовый – это своеобразный радиомаяк, который поможет отследить месторасположение человека.
Как мы уже выяснили, вся территория, где есть мобильная связь, поделена на соты. Там есть вышки и специальные станции, которые имеют определенный адрес.
Если анализировать сигнал с мобильного телефона, то можно определить, на каком расстоянии и где находится человек (в машине, доме, на улице). Также определить перемещение абонента не составит труда. Можно взять несколько вышек и узнать маршрут человека с небольшой погрешностью.
Параметры осуществления биллинга
- расшифровка (детализация) звонков, выхода в интернет
- опознавательный код – идентификатор, который есть у каждого телефона, не зависимо от количества СИМ – карт.
- фиксирование звонков с мобильного телефона человека, которые передаются в виде радиосигнала на ближайшую антенну станции сотовой связи, фиксируются на станции, в виде информации, откуда проходит радиосигнал, опознают примерные координаты звонившего человека.
Оператор определяет место нахождения телефона (возможно, и пропавшего человека) при включенном телефоном аппарате. Включенный аппарат, излучает радиосигналы, даже когда нет звонков. Радиосигналы принимает станция сотовой связи оператора в виде номера соты, где находился телефон, определенное время назад. Радиус погрешности составляет около 30 км.
Прием радиосигналов от мобильный устройств, станцией сотовой связи
Если телефон находится в городской местности, от многочисленных электролиний, станций связи, создаются помехи. Радиус покрытия будет меньше, до двух километров. Соответственно, найти местоположение человека (телефона) будет легче.
Как сделать
Любая информация, которая касается персональных данных пользователей, защищена операторами согласно законам Российской Федерации в сфере сотовой связи. Получить данные могут только соответствующие органы согласно официальному запросу.
Сведения биллинговых операций являются лакомым кусочком для множества мошенников. Поэтому, простому гражданину получить определенные данные можно, но только с множеством ограничений. Если человек не имеет важных оснований для такой операции, получить информацию невозможно.
В сети можно отыскать много программ для биллинга, однако, следует учесть, что все они являются мошенническими или шпионскими. Даже частные детективы, которые имеют доступ к персональным данным, работают нарушая законы и правила.
Среднестатистический абонент, который хочет получить запрос информации, например, при краже телефона или другом правонарушении, может выполнить некоторые действия, которые помогут решить проблему. Например, необходимо провести операцию билинга согласно номера, вычислить, какие совершались вызовы, какая была их длительность и прочие данные. Даже если вор сменил СИМ-карту, то операцию можно провести согласно Inei-кода. Для этого требуется:
- написать официальное заявление или запрос в правоохранительные органы, которые имеют право получить необходимую информацию от операторов;
- воспользоваться специальными программами для отслеживания местоположения устройства, если они были предварительно установлены. Например, устройства от Apple обладают функцией «найти Iphone» или имеют перечень любых других. Оборудование других операционных систем также позволяют установить приложения из большого перечня. Однако, если вор знает все тонкости подобных приложений, то сможет отключить их функционирование. Тогда однозначно придется обращаться в соответствующие организации.
Простой абонент может достаточно легко получить некоторую информацию о собственном счете и его состоянии. При обращении к представителю услуг, можно заказать распечатку вызовов за необходимый срок.
Детализация с аналитикой
Далее следует самая секретная детализация. Эта детализация уже идет с аналитикой, то есть то, что вы получаете, вам уже не нужно анализировать. Специальная программа накладывает на карту местности ваше перемещение, и вы, помимо файла детализации, получаете еще файл, в котором отмечены ваше перемещение, точки залегания и другая полезная для оперативного работника и для следователя информация.
Эта детализация самая серьезная, помимо всего прочего она содержит IMEI, то есть даже если вы вытащили sim-карту и поставили ее в другой телефон, это будет видно. Там уже информация систематизирована максимально подробно и используется для дальнейших оперативных мероприятий, в частности можно установить ваше местопребывание с точностью до квартиры.
А можно ли определить, где был человек?
Сотовые операторы говорят, что можно, но при определенных условиях. Во-первых, нужен номер телефона, по которому будем искать место.
Во-вторых, нужно понимать, чтобы точно определить где находился телефон нужно, чтобы с аппарата был совершен звонок или отправлено смс.
Ведь пока телефон молчит, его местонахождение не отслеживается и не записывается в архив. Ведь нас интересует только тот случай, когда уже все произошло и следователь обращается к сотовому оператору за прошлый период.
Говорят, что в режиме реального времени можно отследить включенный смартфон.
Но, мы ведем речь о том, что уже было. Представляете, сколько телефонов в городе и по стране? Ни один оператор связи не будет записывать его координаты передвижения в режиме реального времени просто так. А вот при наличии звонка или смс — вполне!
Этим как раз и пользуются правоохранительные органы.
Отсюда вывод. Определить за прошлый период, где был человек с телефонным аппаратом можно только в том случае, если он им пользовался.
Как получить запрос биллинга мобильных телефонов физическому лицу?
Сведения по фиксированию, анализу звонков, хранятся у оператора под строгим секретом, согласно закона Российской Федерации о связи. Сведения выдаются на основании запроса вышеуказанным организациям.
Биллинг осуществляется по запросу официальных организаций
Оговоримся, что процедура получения биллинга для частных лиц предусмотрена только теоретически. Без серьезного основания, частным лицам процедура запрещена. Частные детективы, получающие разрешение на биллинг, чаще всего действуют с нарушением закона, берут большую стоимость за свои услуги.
Частные детективы действуют с нарушением закона
Приведем пример: у вас украли телефон, вы хотите сделать запрос на биллинг по номеру телефона. В данном случае, вы хотите знать, откуда, сколько, какое время были звонки с вашего номера. Возможно, в украденном телефоне уже чужая СИМ – карта. Напоминаем, биллинг осуществляется по коду – идентификатору. Итак, ваши действия:
- пишем запрос в правоохранительные инстанции, для того чтобы инстанции сделали следующий запрос оператору, обслуживающему ваш номер.
- при наличии телефона платформы Андроид, поддерживающего программу интернет – магазина Маркет, вы сами можете поставить любую программу, например по отслеживанию, удаленно. Однако, это в том случае, если телефон ловит интернет. Если вор успел сделать удаление программы Маркет, перейти на стандартные настройки от производителя, ничего не получиться. В этом случае, опять – таки, придется обращаться в официальные организации.
Кто может найти телефон по биллингу
Официально оператор сотовой связи не имеет права разглашать информацию относительно местонахождения устройства, соответственно, и его владельца. Данные предоставляются только по запросу правоохранительн ых или судебных органов. Чтобы получить интересующий материал, нужно написать заявление в милицию, на основании которого сотрудники службы предпримут действия, направленные на решение проблемы. Оправданным заявление будет при поиске краденого устройства. Если вам нужно найти абонента в личных целях, данный вариант стоит отложить. Примените в таком случае другие методы решения задачи, более простые и доступные.
Что может сделать оператор?
- принять или не принять запрос от клиента по нахождению человека (телефона).
- контролировать передвижение человека (телефона) с помощью высылки специальных СМС – сообщений, получение которых проходит незаметно для человека (при условии принятия запроса на биллинг).
- внедрить высокотехнологичные системы определения позиций (места нахождения, координат человека (телефона)).
- использовать список географических координат станций других операторов и свой. Список привязан к конкретным адресам, маршрутам. Соответственно, координаты человека (телефона) можно вычислить.
Детализация с базовыми станциями
Существуют детализации, которые заказывают правоохранительные органы, и в них информации гораздо больше. К таким относится детализация с базовыми станциями, то есть она содержит не только информацию о соединениях, но и информацию о том, где вы примерно вы находились, где вы находились в момент звонка с определенной точностью. Степень точности зависит от концентрации базовых станций в конкретной зоне, где совершался звонок.
Допустим, вы совершали примерно из этого квадрата этот звонок, из другого квадрата другой звонок, и это позволяет определить точки залегания, то есть где вы ночуете, где находитесь днем, где находится ваш офис, как вы примерно перемещаетесь по городу.
Такая детализация не доступна никому, кроме оперативных работников и работников спецслужб.