запрошенный вами товар недоступен для покупки

96

Я пытаюсь интегрировать покупки в Android Market в свое приложение, но, к сожалению, каждый раз сталкиваюсь с досадной ошибкой, когда пытаюсь приобрести настоящий продукт inapp.

Я взял образец приложения (Dungeons) и добавил его в свое приложение. Я обновил открытый ключ, а также обновил список продуктов следующим образом:

/ ** Массив записей списка продуктов для продуктов, которые можно приобрести. * /

private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
    new CatalogEntry("full", "Full v", Managed.MANAGED),

};

Я экспортировал приложение с помощью Eclipse, установил его на свой телефон, а также загрузил на веб-сайт Android Market. Также на веб-сайте Android Market я добавил полную версию как покупку в приложении и опубликовал ее.

Я также добавил свою учетную запись googlemail в качестве тестовой учетной записи (это та, в которую я вошел на своем телефоне).

Когда я запускаю приложение на своем телефоне, я получаю сообщение о том, что запрошенный вами товар недоступен для покупки, когда я пытаюсь купить его полностью, но если я попробую, например, android.test.purchased, он работает абсолютно нормально.

В документации по запрошенному вами элементу, недоступному для покупки Android, указано следующее:

Указывает, что Android Market не может найти запрошенный элемент в списке продуктов приложения. Это может произойти, если идентификатор продукта неправильно написан в вашем запросе REQUEST_PURCHASE или если элемент не опубликован в списке продуктов приложения.

Идентификатор продукта определенно тот же, он определенно опубликован, и запрос должен пройти нормально, поскольку это образец приложения.

Я использую ту же версию apk, я также опубликовал продукты inapp и также активировал apk. но все же я столкнулся с той же проблемой, пожалуйста, помогите мне исправить ее.

Любые мысли будут оценены!

слабак
источник
1
вы публикуете свой продукт?
Mohsin Naeem
учетная запись Google, для которой вы использовали Merchant Account, отличается от учетной записи устройства?
Мохсин Наим
1
Убедитесь, что продукт, который вы добавили в Play Store, имеет статус «активный»
Али
Убедитесь, что ваши тестировщики перешли по ссылке для
подтверждения

Ответы:

181

Мой опыт по этой ошибке:

  1. Обязательно загрузите подписанный APK в консоль разработчика.

  2. Убедитесь, что на вашем устройстве установлен подписанный APK, а не запускайте приложение в отладчике.

  3. Обязательно создайте тестовую учетную запись в консоли разработчика.

  4. Настройте свой тестовый аккаунт

    1. Обязательно войдите в свое устройство с помощью тестовой учетной записи.
    2. В случае закрытого альфа / бета-тестирования убедитесь, что вы добавили свою тестовую учетную запись в выбранную группу тестировщиков, вы можете сделать это на странице управления вашей альфа / бета-версией.
    3. В случае закрытого альфа / бета-тестирования убедитесь, что ваша тестовая учетная запись приняла участие в тестировании этого приложения по специальной пригласительной ссылке.
  5. Обязательно создайте биллинг в приложении в консоли разработчика и, наконец, активируйте элемент из консоли !!! (это тот, который получил меня после полного следования руководству Google)

  6. Обязательно установите VersionCode и VersionName в манифесте так, чтобы они совпадали с версией в консоли разработчика (Alpha, Beta или Production. Черновики больше не работают). Ответ @alexgophermix работал у меня.

Если вы ищете тестовые платежи без фактического вывода денег, вам необходимо дополнительно добавить свою тестовую учетную запись в другой специальный список учетных записей «Учетные записи Gmail с тестовым доступом», вы можете найти это в настройках игровой учетной записи (не в проекте!). На странице, где вы можете увидеть список ваших проектов, перейдите в настройки, а затем на странице «Сведения об учетной записи» (прокрутите вниз, она почти внизу страницы) вы найдете список «Учетные записи Gmail с тестовым доступом».

пинукс
источник
5
Всегда не забывайте тестировать приложение, используя подписанную сборку. +1
Вамси Чалла
37
Обязательно установите VersionCode и VersionName в манифесте так, чтобы они совпадали с версией в консоли разработчика (Alpha, Beta или Production. Черновики больше не работают). Ответ @alexgophermix работал у меня. +1
i.shadrin 05
6
Кроме того, убедитесь, что ваш тестовый пользователь подписался на альфа-версию (если вы используете этот obv). Недостаточно добавить их в Тестирование лицензии.
ADB
4
Убедитесь, что вы одобрили роль тестировщика, открыв URL-адрес подписки и используя тестовую учетную запись.
bogumil
1
Коды версий должны совпадать, спасибо за внимание, спасло мгновение чистой паники.
Meanman
97

Вот что нужно проверить:

  1. Вы создали apk и опубликовали его на панели инструментов GooglePlay в альфа- или бета-версии .
  2. Приложение на панели инструментов GooglePlay находится НЕ в режиме черновика , а в опубликованном (вам нужно сделать все маленькие кружки со значком галочки в них в левой части экрана зелеными, прежде чем вы сможете опубликовать).
  3. Вы установили другую тестовую учетную запись, отличную от той, которая «прикреплена» к панели инструментов GooglePlay. Вы можете сделать это, создав группу Google+, добавив в эту группу свою тестовую учетную запись и указав группу Google+ в панели инструментов GooglePlay.
  4. APK, который вы используете для проверки покупки, имеет тот же код версии, имя версии и, что наиболее важно, он подписан тем же хранилищем ключей, что и apk, который вы опубликовали в магазине.
  5. Вы ждете пару часов между тем, когда что-то измените на панели инструментов, чтобы изменения вступили в силу. На это уходит пара часов.
  6. Убедитесь, что значение sku является допустимым значением sku (сравните его с тем, которое вы ввели на панели инструментов GP).
  7. Вы пытаетесь приобрести уже купленный товар . Получите купленные предметы и отобразите их в журнале, чтобы узнать, так ли это. Если да, то используйте этот продукт или верните деньги на свой тестовый аккаунт (вам нужно будет дождаться возврата средств. Это займет пару часов).
  8. Убедитесь, что Inapps активны !

Что для меня сделало это через 6 часов, так это последняя часть:

  1. Убедитесь, что вы вошли в Google (в своем браузере) с тестовой учетной записью, открываете эту ссылку (отмечена красным) и соглашаетесь стать тестером !!!! http://i.stack.imgur.com/VSgAV.png

ОБНОВИТЬ

  1. Если вы используете разновидности для создания apks, нацеленных на разные процессоры, и вы строите для arm, armv7 и x86 и загружаете их все в магазин, не забудьте использовать один из них для тестирования inapps. Если вы используете «универсальную» сборку, которая содержит все библиотеки процессора (в основном другая сборка, чем та, что есть в магазине), она не будет работать.
Андрей Богдан
источник
14
У меня такая же ситуация с тобой. все 1-8 не проблема, а вот 9 проблема. Потратил весь свой день, чтобы найти это. Ты мой спасатель.
Paiboon Panusbordee
2
Да, последняя часть является наиболее важной, похоже, Google изменил правила, он работал без шага 9, но теперь, для закрытой бета-версии или открытой бета-версии вам нужно щелкнуть ссылку. Спасибо чувак!
Siyuan Zhang
Моя проблема заключалась в том, что 4. установленный код версии apk не был таким же, как apk Google Play. Как только я сделал ту же версию, она заработала. Этот ответ ценен.
Thupten
Я так ненавижу эту «пару часов» неопределенности! В эти «пару часов» мой начальник обычно сходит с ума! Кстати, если у вас установлен APK вручную, вы вообще не получите никаких обновлений! И это глупо, что с собственным подписанным APK IAB не работает. Думаю, нам нужно дождаться проклятого обновления!
WindRider
1
Спасибо за шаг 9
zdd
45

Это происходит, когда продукт находится Inactiveв Play Store, Activateпродукт и он должен работать нормально.

АнилПатель
источник
Никогда не думал об этом ...: D Спасибо, что сэкономили больше часов!
Камран Ахмед
Что вы имеете в виду под неактивным ? Разработчикам следует использовать только альфа-версию APK.
Игорь Ганапольский
23

Есть еще одна возможная причина этой ошибки, которая почти сводила меня с ума на целый день, пока я не обнаружил, в чем проблема: версия apk. Если вы работаете с локальным apk (правильно подписанным, правильным ключом, правильными идентификаторами продуктов) с номером версии выше, чем номер, загруженный в Play Store, вы также получите эту ошибку.

Надеюсь, это кому-то поможет

DavidBVal
источник
Это не дает ответа на вопрос. Как только у вас будет достаточная репутация, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют пояснений от спрашивающего . - Из
отзыва
11
На самом деле полезно знать информацию, содержащуюся в этом ответе, и она может быть правильным ответом для некоторых людей вроде меня
AlexioVay
6
@tttony Я указал на другую причину ошибки, никаких разъяснений не просил. Это не гипотеза , или вопрос, если вы вручную установить APK с более высоким номером версии , чем один опубликованный в приложении покупки будет возвращать эту ошибку.
DavidBVal
2
Это была очень полезная информация. Большое спасибо за то, что я сэкономил столько времени. Недурно.
Аритра Рой,
22

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

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

Нирали
источник
Это правдивый ответ, который редко можно найти. Так что большое спасибо за то, что приложили все усилия и не добавили еще один ответ «активируйте свой продукт».
Дон
19

Возможно, я делал это неправильно, но вы также получите эту ошибку, если версия, которую вы тестируете, отсутствует в Play Store как альфа, бета или рабочая версия.

Я часто обновляю свой VersionCode и VersionName, все еще тестируя новую версию (ПЕРЕД загрузкой в ​​Play Store), а затем получаю эту ошибку, когда иду тестировать определенные функции IAB.

Alexgophermix
источник
4
А также подождите не менее 45-90 минут после загрузки в Play Store, чтобы он начал работать.
mm2001
9

В моем случае нужно перейти, чтобы получить ссылку из вкладки APK Opt-in URL. Откройте браузер и воспользуйтесь ссылкой. Затем зарегистрируйтесь в качестве тестировщика на этой странице.

Пэйн Чу
источник
9

вы должны согласиться стать тестером

Управление выпусками -> выпуски приложений -> управление тестером, затем откройте эту ссылку (URL-адрес подписки) в режиме инкогнито для входа в учетную запись тестера

введите описание изображения здесь

vuhung3990
источник
Я тестировщик, и у меня такая же проблема.
Jorgesys
4

пожалуйста, проверьте, используете ли вы тот же почтовый идентификатор тестовой учетной записи или нет

слабак
источник
Если мое устройство входило в систему как другой почтовый идентификатор, после того, как я установил почтовый идентификатор testaccount как первичный идентификатор, эта проблема решена.
laxman
3
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его сообщением - вы всегда можете комментировать свои собственные сообщения, и как только у вас будет достаточная репутация, вы сможете комментировать любое сообщение .
Азиз Шейх
Я получил эту ошибку, когда мое устройство входило в систему как отличное от идентификатора почты тестовой учетной записи (идентификатор почты testaccount, указанный в консоли разработчика под открытым ключом). если я установил идентификатор почты testaccount в качестве основного идентификатора электронной почты моего устройства
laxman
4

Последние добавления (2016/11):

  1. тестировщик должен ПРИНИМАТЬ запрос на тестирование, взятый по ссылке из консоли разработчика (раздел: APK)

  2. приложение должно быть ОПУБЛИКОВано : его можно опубликовать в бета / альфа-тестировании; ИНФОРМАЦИЯ: если вы нажмете «Опубликовать» в консоли разработчика, приложение не будет опубликовано в рабочей среде, если вы не перенесете его на вкладку «Производство» (в разделе APK);

PerfectGamesOnline.com
источник
2

Если статус продукта «Неактивен», активируйте его. это решило для меня. Конечно, Google требует времени, чтобы обновить

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

vijeth.ag
источник
1

«Открытое альфа-тестирование» или «открытое бета-тестирование» решило для меня проблему, после того как я испробовал все методы, предлагаемые в Интернете.

Перейдите в консоль разработчика Android -> Ваше приложение -> APK, затем включите использование открытого альфа / бета-тестирования. Отправьте ссылку себе или тестерам.

Пока они вошли в систему с этой учетной записью на своем устройстве Android, они могут ее протестировать.

Удачи

R_Paoa
источник
1

Я столкнулся с той же проблемой. Решением для меня была загрузка текущей версии вашего приложения в игровой магазин. Если это для тестирования, загрузите его в альфа- или бета-канал, я сделал это, и ошибка исчезла. и информация о ценах отображается правильно ..

Амин Маин
источник
0

Возможны три варианта:

  1. Сохраните APK-файл в Google Play как черновик и не забудьте активировать его и публиковать свои продукты с уникальными идентификаторами.
  2. Убедитесь, что ваши идентификаторы совпадают с идентификаторами продуктов в Google Play.
  3. или проверьте, совпадают ли типы элементов, например, управляются как в Google Play, так и в вашем коде.

Если вы тестируете, не нужно публиковать приложение. Просто сохраните его как черновик. И затем подождите некоторое время, может быть, от 2 до 3 часов, чтобы активировать это.

URAndroid
источник
3
три вышеуказанных условия выполнены, но показывает ту же ошибку
laxman
0

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

  1. Создайте продукт на консоли разработчика Google Play.

  2. Сохраните и установите его в «Активный».

  3. Загрузите APK в Google play.

NB. Биллинг внутри приложения может не работать до тех пор, пока не пройдет 6 часов после создания продукта на шаге 1.

вдохновленный Майкл
источник
0

Ответ, получивший наибольшее количество голосов, охватывает практически все, но если вы были так же глупы, как я, торопились с процессом выпуска приложения, чтобы продолжить тестирование IAP, обязательно опубликуйте приложение в Play Store страны, которую вы тестируете. в! Простой способ проверить это на устройстве - нажать ссылку «Загрузить в Google Play» при открытии тестового URL-адреса. Если вы получаете сообщение об ошибке «Элемент не найден» при попытке открытия через магазин Google Play, вероятно, ваше приложение там не было опубликовано. Я столкнулся с этой проблемой, потому что я правильно загружал подписанное приложение через ADB, и хотя IAP будут отображаться в сборке, вы получите эту ошибку, когда попытаетесь их приобрести.

прыгать
источник
0

При покупке подписки в приложении у меня было все, что указано в списке ниже, в нужном месте.

  1. Создан подписанный apk и опубликован в альфа-канале

  2. Добавлены идентификаторы электронной почты тестировщика для тестирования лицензии

  3. Добавлены идентификаторы электронной почты тестировщика для закрытого альфа-тестирования

  4. Выбрал быть тестером

  5. Идентификатор тестирования отличался от идентификатора учетной записи разработчика

  6. Был на устройстве Android, а не на эмуляторе

  7. Загрузил приложение из игрового магазина

Тем не менее я получал сообщение об ошибке: «Не удалось найти искомый предмет». .

Потратив 2-3 дня, я обнаружил, что он работает, только если в игровом магазине был настроен какой-то режим оплаты. .

Хотя большинство ответов относятся к старой покупке IAB, и я внедрил новый API биллинг-клиента, который - implementation 'com.android.billingclient:billing:1.0'это было нелегко найти решение.

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

Пчела
источник