товар, який ви просили, недоступний для придбання


95

Я намагаюся інтегрувати покупки через додаток 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, коли я намагаюся придбати повне, але якщо я спробую, наприклад, android.test.purchased, це працює абсолютно нормально.

Документація до товару, про який ви просили, недоступний для покупки, android зазначає наступне:

Вказує на те, що Android Market не може знайти потрібний товар у списку продуктів програми. Це може статися, якщо у вашому запиті REQUEST_PURCHASE неправильно написаний ідентифікатор товару або якщо товар не опубліковано у списку продуктів програми.

Ідентифікатор продукту однозначно однаковий, він визначено опублікований, і запит повинен проходити нормально, оскільки це зразок програми.

я використовую ту саму версію apk, а також публікував продукти inapp, а також активував apk. але все одно я стикаюся з такою ж проблемою, будь ласка, допоможіть мені хо її виправити.

Будь-які думки будуть вдячні!


1
ви публікуєте свій товар?
Mohsin Naeem

обліковий запис Google, яким ви раніше користувалися Merchant Account, відрізняється від облікового запису пристрою?
Mohsin Naeem

1
Переконайтеся, що продукт, який ви додали в магазин ігор, має статус "активний"
Алі,

Переконайтеся, що ваші тестери натиснули посилання для вибору ...
Піксель

Відповіді:


181

Мій досвід щодо цієї помилки:

  1. Не забудьте завантажити підписаний файл .apk на консоль розробника.

  2. Не забудьте встановити підписаний файл .apk на своєму пристрої, а не запускати програму в налагоджувачі.

  3. Обов’язково створіть тестовий обліковий запис на консолі розробника.

  4. Налаштуйте свій обліковий запис для тестування

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

  6. Обов’язково встановіть у маніфесті VersionCode та VersionName такими, як версія в консолі розробника (Альфа, Бета чи Виробництво. Чернетки більше не працюють). Відповідь @alexgophermix у мене спрацювала.

Якщо ви шукаєте тестування платежів без фактичного зняття грошей, вам потрібно додатково додати свій тестовий рахунок до іншого спеціального списку облікових записів "Облікові записи Gmail з доступом для тестування", це можна знайти в налаштуваннях акаунта Play (не проекту!). На сторінці, де ви можете побачити список своїх проектів, перейдіть до налаштувань, а потім на сторінці "Деталі облікового запису" (прокрутіть униз, це майже внизу сторінки) ви знайдете список "Облікові записи Gmail із доступом для тестування".


5
Завжди пам’ятайте про тестування програми за допомогою підписаної збірки. +1
Вамсі Чалла

36
Обов’язково встановіть у маніфесті VersionCode та VersionName такими, як версія в консолі розробника (Альфа, Бета чи Виробництво. Чернетки більше не працюють). Відповідь @alexgophermix у мене спрацювала. +1
i.shadrin

6
Окрім того, переконайтеся, що ви тестували користувача, який увійшов у програму Alpha (якщо ви використовуєте цей obv). Недостатньо додавати їх до тестування ліцензії.
АБР

4
Переконайтеся, що ви дозволили стати тестувальником, відкривши URL-адресу для входу та використовуючи тестовий обліковий запис.
богуміл

1
Коди версій повинні збігатися, дякую за увагу, врятували хвилину простої паніки.
Meanman

97

Ось кілька речей для перевірки:

  1. Ви створили файл .apk і опублікували його на інформаційній панелі GooglePlay в альфа- або бета-версії .
  2. Додаток на інформаційній панелі GooglePlay НЕ знаходиться в режимі чернетки , а в опублікованому (перед публікацією вам потрібно зробити зеленими всі маленькі кола з піктограмою прапорця в лівій частині екрана).
  3. Ви встановили інший тестовий обліковий запис, крім того, який "прикріплений" до інформаційної панелі GooglePlay. Для цього можна створити групу Google+, додати до неї свій тестовий обліковий запис і вказати групу Google+ на інформаційній панелі GooglePlay.
  4. АПК, який ви використовуєте для тестування покупки, має той самий код версії, назву версії , і найголовніше, він підписаний тим самим сховищем ключів , що і apk, який ви опублікували в магазині.
  5. Ви зачекаєте пару годин між тим, як щось змінити на інформаційній панелі, щоб зміни розповсюдились. Для цього потрібно пару годин.
  6. Переконайтеся, що значення sku є дійсним значенням sku (порівняйте його із значенням, яке ви ввели на інформаційній панелі GP).
  7. Ви намагаєтесь придбати вже придбаний предмет . Дістаньте придбані речі та покажіть їх у журналі, щоб перевірити, чи так. Якщо так, то споживайте цей товар або повертайте гроші на свій тестовий рахунок (вам доведеться почекати, поки повернеться повернення коштів. Це займає пару годин.)
  8. Переконайтесь, що Inapps активні !

Що для мене це зробило через 6 годин, це була остання частина:

  1. Переконайтеся, що ви ввійшли в Google (у своєму браузері) за допомогою тестового облікового запису, і відкрили це посилання (позначене червоним) і погоджуєтесь стати тестувальником !!!! http://i.stack.imgur.com/VSgAV.png

ОНОВЛЕННЯ

  1. Якщо ви використовуєте ароматизатори для створення apk-файлів, націлених на різні процесори, і створюєте для arm, armv7 та x86 і завантажуєте їх усі до магазину, не забудьте використати один із них для тестування додатків. Якщо ви використовуєте "універсальну" збірку, яка містить усі бібліотеки процесора (в основному іншу збірку, ніж те, що знаходиться в магазині), вона не буде працювати.

14
У мене така ж ситуація з вами. всі 1-8 - це не проблема, але це 9 - це проблема. Даремно витрачаю цілий день, щоб знайти це. Ти мій рятувальник життя.
Paiboon Panusbordee

2
Так, остання частина є найважливішою, схоже, Google змінив правила, вона використовується для роботи без кроку 9, але зараз, для закритої або відкритої бета-версій, вам потрібно натиснути посилання. Дякую Чоловіче!
Siyuan Zhang

моя проблема полягала в 4. встановлений код версії apk був не таким, як google play apk. Щойно я зробив ту саму версію, вона спрацювала. Ця відповідь цінна.
Таптен

Я так ненавиджу цю "пару годин" невизначеності! Протягом цієї "пари годин" мій бос зазвичай збивається з розуму! До речі, якщо у вас є APK, встановлений вручну, ви не отримаєте жодного оновлення взагалі! І дурно, що з власним підписаним APK IAB не працює. Думаю, нам потрібно почекати, доки відбудеться прокляте оновлення!
WindRider

1
Дякую за крок 9
zdd

45

Це трапляється, коли продукт знаходиться Inactiveв Play Store, Activateвін повинен працювати нормально.


Ніколи про це не думав ...: D Дякуємо, що заощадили більше годин!
Камран Ахмед

Що ви маєте на увазі під неактивним ? Розробникам слід просто використовувати альфа-версію APK.
Ігор Ганапольський

23

Існує ще одна можлива причина цієї помилки, яка майже зводила мене з розуму цілий день, поки я не знайшов, в чому проблема: версія apk. Якщо ви працюєте з локальним файлом .apk (правильно підписаним, правильним ключем, правильними ідентифікаторами продуктів) з номером версії, вищим за той, що завантажений у Play Store, ви також отримаєте цю помилку.

Сподіваюся, це комусь допомагає


Це не дає відповіді на запитання. Коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію ; натомість надайте відповіді, які не потребують уточнення від запитувача . - З огляду
tttony

11
Інформацію про цю відповідь насправді корисно знати, і вона може бути правильною відповіддю для таких людей, як я
AlexioVay

6
@tttony Я вказав на ще одну причину помилки, я не просив ніяких роз'яснень. Це не гіпотеза , або питання, якщо ви вручну встановити APK з більш високим номером версії , ніж один опублікований в додатку покупки буде повертати цю помилку.
DavidBVal

2
Це була дуже корисна інформація. Велике спасибі, що заощадили стільки мого часу. Пальці вгору.
Арітра Рой

22

Ця помилка виникає, коли все, що ви зробили, ідеальне, ви використовували підписаний файл .apk із відповідним ідентифікатором продукту, але ви повинні зауважити, що в обліковому записі, який ви використовуєте, може не бути належних дійсних даних кредитної картки .

Отже, коли ви хочете придбати будь-який товар, навіть маючи тестовий рахунок , цей рахунок повинен мати дійсні дані про кредит.


Ця відповідь є і правдивою, і рідкісною. Тож велике спасибі за те, що ви пройшли зайвий кілометр і не додали ще одну відповідь "активуйте свій продукт".
Дон

19

Можливо, я робив це неправильно, але ви також отримаєте цю помилку, якщо версія, яку ви тестуєте, не є в Play Store як Alpha, Beta або Production.

Я часто оновлюю свій VersionCode і VersionName, проте все ще тестуючи нову версію (ПЕРЕД завантаженням у Play Store), а потім опиняюся з цією помилкою, коли я йду тестувати певні функції IAB.


4
А також дозвольте принаймні 45-90 хвилин після завантаження в магазин Play, щоб він почав працювати.
mm2001

9

Для мого випадку потрібно перейти, щоб отримати посилання з вкладки APK Opt-in URL. Відкрийте браузер і скористайтеся посиланням. Потім зареєструйтесь як тестер на цій сторінці.


9

ви повинні прийняти, щоб стати тестувальником

Управління випусками -> випуски додатків -> керувати тестером, потім відкрити це посилання (URL-адреса для входу) в режимі анонімного перегляду, щоб увійти в обліковий запис тестера

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


Я тестер, і у мене одна і та ж проблема.
Jorgesys

4

Будь ласка, перевірте, чи використовуєте ви той самий ідентифікатор пошти тестового облікового запису чи ні


ha мій пристрій входу як інший ідентифікатор пошти, після того, як я встановив ідентифікатор пошти testaccount основним ідентифікатором, ця проблема вирішена.
laxman

3
Це не дає відповіді на запитання. Щоб критикувати або вимагати роз’яснень від автора, залиште коментар під його публікацією - ви завжди можете коментувати власні публікації, і коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію .
Aziz Shaikh

я отримав цю помилку, коли мій пристрій входив як інший, ніж ідентифікатор пошти тестового облікового запису (ідентифікатор пошти testaccount вказаний у консолі розробника під відкритим ключем). якщо я встановив ідентифікатор пошти
testaccount

4

Останні доповнення (2016/11):

  1. тестер повинен ПРИЙНЯТИ запит на тестування, взятий за посиланням із Консолі розробника (розділ: APK)

  2. додаток має бути ОПУБЛІКОВАНО : нормально публікувати в бета-тестуванні / альфа-тестуванні; ІНФОРМАЦІЯ: якщо ви натиснете "Опублікувати" у Developer Console, вона не опублікує додаток у виробництві, якщо ви не розповсюдите його на вкладці "Виробництво" (у розділі APK);


2

Якщо статус Товару знаходиться в "Неактивний", активуйте його. це Вирішено для мене. Звичайно, Google займає деякий час для оновлення

Також переконайтеся, що ваша тестова пошта була зареєстрована.


1

"Відкрите альфа-тестування" або "Відкрите бета-тестування" вирішило проблему для мене, спробувавши всі методи, запропоновані в Інтернеті.

Перейдіть на Android Developer Console -> Ваш додаток -> APK, а потім увімкніть тестування Open Alpha / Beta. Надішліть надане посилання собі або тестувальникам.

Поки вони увійшли в цей обліковий запис на своєму Android-пристрої, вони можуть протестувати його.

Удачі


1

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


0

Можливі три можливості:

  1. Збережіть свій файл .apk у google play як проект і не забудьте його активувати та публікувати свої продукти з унікальними ідентифікаторами.
  2. Переконайтеся, що ваші ідентифікатори збігаються з ідентифікаторами продуктів у Google Play.
  3. або перевірте, чи типи товарів однакові, наприклад, керовані як у Google Play, так і у вашому коді.

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


3
вище трьох умов виконуються, але в ньому виявляється та сама помилка
laxman

0

Для вирішення цієї проблеми виконайте такі дії:

  1. Створіть продукт на консолі розробника Google Play.

  2. Збережіть і встановіть для нього значення "Активний".

  3. Завантажте файл .apk у Google play.

Примітка. Виставлення рахунків через додаток може не працювати до 6 годин створення вашого продукту на кроці 1.


0

Відповідь, яка отримала найбільшу кількість голосів, охоплює майже все, але якщо ви були такими ж дурними, як я, щоб поспішати з процесом випуску програми, щоб продовжити тестування IAP, обов’язково опублікуйте додаток у магазині Play тієї країни, яку ви тестуєте у! Найпростіший спосіб перевірити це на пристрої - натиснути посилання "завантажити в Google Play", відкриваючи тестову URL-адресу для входу. Якщо під час спроби відкрити через магазин Google Play ви отримуєте помилку "Елемент не знайдено", швидше за все, ваша програма там не опублікована. Я зіткнувся з цією проблемою, оскільки правильно завантажував підписаний додаток через ADB, і хоча IAP відображатимуться у збірці, ця помилка з’явиться при спробі придбати їх.


0

Купуючи підписку на додаток, я мав усі речі зі списку нижче в потрібному місці.

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

  2. Додано ідентифікатори електронної пошти тестувальника до тестування ліцензії

  3. Додано ідентифікатори електронної пошти тестувальника до закритого альфа-тестування

  4. Вибрали бути тестером

  5. Ідентифікатор тестування відрізнявся від ідентифікатора облікового запису розробника

  6. Був на пристрої Android, а не на емуляторі

  7. Завантажив програму з магазину ігор

Все-таки я отримував цю помилку, кажучи: "Елемент, який ви шукали, не вдалося знайти" .

Протративши 2-3 дні, я виявив, що він працює лише в тому випадку, якщо якийсь режим оплати був налаштований у play store .

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

Якщо це те ж саме для деяких, додавання режиму оплати може допомогти вам подолати цю помилку. Вам потрібно додати один навіть для його тестування, однак за ідентифікатори електронної пошти, додані як тестери ліцензій , він не стягуватиметься.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.