Próbuję zintegrować zakupy w aplikacji Android Market z moją aplikacją, ale niestety napotykam irytujący błąd za każdym razem, gdy próbuję kupić prawdziwy produkt inapp.
Pobrałem przykładową aplikację (Dungeons) i dodałem ją do mojej aplikacji. Zaktualizowałem klucz publiczny, a także zaktualizowałem listę produktów do następujących:
/ ** Tablica wpisów na liście produktów dla produktów, które można kupić. * /
private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
new CatalogEntry("full", "Full v", Managed.MANAGED),
};
Wyeksportowałem aplikację za pomocą Eclipse i zainstalowałem ją na moim telefonie, a także załadowałem na witrynę Android Market. Również na stronie Android Market dodałem pełny jako zakup w aplikacji i opublikowałem go.
Dodałem również moje konto googlemail jako konto testowe (to jest to, na które jestem zalogowany na moim telefonie).
Kiedy uruchamiam aplikację na moim telefonie, otrzymuję żądany przedmiot, który nie jest dostępny do kupienia, wiadomość na Androida za każdym razem, gdy próbuję kupić pełną wersję, ale jeśli spróbuję, na przykład, zakupiony android.test, działa absolutnie dobrze.
Dokumentacja dotycząca żądanego elementu, którego nie można kupić w systemie Android, zawiera następujące informacje:
Wskazuje, że Android Market nie może znaleźć żądanego elementu na liście produktów aplikacji. Może się tak zdarzyć, jeśli identyfikator produktu jest błędnie wpisany w żądaniu REQUEST_PURCHASE lub jeśli pozycja nie jest opublikowana na liście produktów aplikacji.
Identyfikator produktu jest zdecydowanie taki sam, jest definitywnie opublikowany, a żądanie musi przejść pomyślnie, ponieważ jest to przykładowa aplikacja.
Używam tej samej wersji apk, a także opublikowałem produkty inapp i aktywowałem apk. ale nadal mam ten sam problem, pomóż mi go naprawić.
Wszelkie myśli będą mile widziane!
Merchant Account
, różni się od konta urządzenia?Odpowiedzi:
Moje doświadczenie z tym błędem to:
Pamiętaj, aby przesłać podpisany plik APK do konsoli programisty.
Upewnij się, że instalujesz podpisany pakiet APK na swoim urządzeniu, a nie uruchamiasz aplikacji w debugerze.
Upewnij się, że utworzyłeś konto testowe w konsoli programisty.
Skonfiguruj konto testowe
Upewnij się, że utworzyłeś rozliczenia aplikacji w konsoli programisty i ostatecznie aktywujesz element z konsoli !!! (to jest ten, który dostałem po pełnym wykonaniu samouczka Google)
Upewnij się, że kod VersionCode i nazwa_wersji w manifeście są takie same, jak wersja w konsoli programisty (Alpha, Beta lub Production. Wersje robocze już nie działają). Odpowiedź @alexgophermix zadziałała dla mnie.
Jeśli szukasz testowania płatności bez faktycznej wypłaty pieniędzy, musisz dodatkowo dodać swoje konto testowe do innej specjalnej listy kont „Konta Gmail z dostępem testowym”, możesz to znaleźć w ustawieniach konta Play (nie w projekcie!). Na stronie, na której możesz zobaczyć listę swoich projektów, przejdź do ustawień, a następnie na stronie „Szczegóły konta” (przewiń w dół, prawie na dole strony) znajdziesz listę „Konta Gmail z dostępem testowym”.
źródło
Oto kilka rzeczy do sprawdzenia:
Co mi zrobiło po 6 godzinach, to ta ostatnia część:
AKTUALIZACJA
źródło
Dzieje się tak, gdy produkt jest
Inactive
w Sklepie Play,Activate
produkt i powinien działać dobrze.źródło
Ten błąd pojawia się, gdy wszystko, co zrobiłeś, jest idealne, użyłeś podpisanego pliku APK z odpowiednim identyfikatorem produktu, ale musisz pamiętać, że konto , którego używasz, może nie mieć odpowiednich ważnych danych karty kredytowej .
Jeśli więc chcesz kupić dowolny produkt, nawet z kontem testowym , to konto powinno mieć ważne dane kredytowe.
źródło
Jest jeszcze jedna możliwa przyczyna tego błędu, która prawie doprowadzała mnie do szału przez cały dzień, dopóki nie znalazłem problemu: wersja apk. Jeśli pracujesz z lokalnym apk (poprawnie podpisany, prawidłowy klucz, prawidłowe identyfikatory produktów) z numerem wersji wyższym niż ten przesłany do Sklepu Play, również pojawi się ten błąd.
Mam nadzieję, że to komuś pomoże
źródło
Może robiłem to źle, ale otrzymasz również ten błąd, jeśli wersja, na której testujesz, nie jest dostępna w Sklepie Play jako wersja alfa, beta lub produkcja.
Często aktualizuję swój kod VersionCode i nazwa_wersji, wciąż testując nową wersję (PRZED przesłaniem do Sklepu Play), a następnie pojawia się ten błąd, gdy idę przetestować funkcje specyficzne dla IAB.
źródło
W moim przypadku trzeba przejść, aby uzyskać link z zakładki APK
Opt-in URL
. Otwórz przeglądarkę i użyj łącza. Następnie zarejestruj się jako tester na tej stronie.źródło
musisz się zgodzić, aby zostać testerem
Zarządzanie wersjami -> wersje aplikacji -> zarządzaj testerem, a następnie otwórz ten link (adres URL zgody) w trybie incognito, aby zalogować się na konto testera
źródło
sprawdź, czy używasz tego samego identyfikatora konta testowego, czy nie
źródło
Najnowsze dodatki (2016/11):
tester musi ZAAKCEPTOWAĆ żądanie testowania pobrane z linku pobranego z Konsoli programisty (sekcja: APK)
aplikacja musi być OPUBLIKOWANA : publikowanie w wersji beta / alfa jest dozwolone; INFORMACJE: jeśli klikniesz „Publikuj” w Konsoli programisty, aplikacja nie zostanie opublikowana w wersji produkcyjnej, chyba że propagujesz ją na karcie Produkcja (w sekcji APK);
źródło
Jeśli stan produktu to „Nieaktywny”, aktywuj go. to rozwiązane dla mnie. Oczywiście aktualizacja Google zajmuje trochę czasu
Upewnij się również, że Twoja wiadomość testowa została zarejestrowana.
źródło
„Otwarte testy alfa” lub „otwarte testy beta” rozwiązały problem, po wypróbowaniu wszystkich metod sugerowanych w całym Internecie.
Przejdź do Konsoli programisty Androida -> Twoja aplikacja -> APK, a następnie zdecyduj się na korzystanie z otwartych testów alfa / beta. Prześlij podany link do siebie lub testerów.
Dopóki są zalogowani na to konto na swoim urządzeniu z Androidem, mogą je przetestować.
Powodzenia
źródło
Napotkałem ten sam problem, Rozwiązaniem dla mnie było wgranie aktualnej wersji twojej aplikacji do sklepu Play, jeśli jest do testowania to prześlij ją na kanał Alpha lub Beta, zrobiłem to i błąd zniknął a szczegóły ceny są wyświetlane poprawnie.
źródło
Mogą istnieć trzy możliwości:
Jeśli testujesz, nie musisz publikować aplikacji. Po prostu zapisz go jako wersję roboczą. A następnie poczekaj jakiś czas, może to zająć od 2 do 3 godzin, aby to aktywować.
źródło
Aby rozwiązać ten problem, wykonaj następujące kroki:
Utwórz produkt w konsoli programisty Google Play.
Zapisz i ustaw jako „Aktywny”.
Prześlij plik APK do Google Play.
Uwaga: Rozliczenia w aplikacji mogą nie działać przed upływem 6 godzin od utworzenia produktu w kroku 1.
źródło
Najlepsza głosowana odpowiedź obejmuje prawie wszystko, ale jeśli byłeś tak głupi, jak ja pośpieszyłem przez proces wydawania aplikacji, aby kontynuować testowanie IAP, pamiętaj, aby opublikować aplikację w Sklepie Play w kraju, który testujesz w! Łatwym sposobem sprawdzenia tego na urządzeniu jest kliknięcie linku „pobierz to z Google Play” podczas otwierania adresu URL akceptacji testu. Jeśli podczas próby otwarcia za pośrednictwem sklepu Google Play pojawi się błąd „Nie znaleziono elementu”, prawdopodobnie Twoja aplikacja nie została tam opublikowana. Napotkałem ten problem, ponieważ poprawnie ładowałem podpisaną aplikację przez ADB i chociaż IAP pojawią się w kompilacji, otrzymasz ten błąd, gdy spróbujesz je kupić.
źródło
Kupując subskrypcję w aplikacji, wszystkie rzeczy z poniższej listy znalazłem we właściwym miejscu.
Utworzono podpisany apk i opublikowano w kanale alfa
Dodano identyfikatory e-mail testerów do testowania licencji
Dodano identyfikatory e-mail testerów do testów alfa zamkniętych ścieżek
Wyrażono zgodę na bycie testerem
Identyfikator testowania różni się od identyfikatora konta programisty
Był na urządzeniu z Androidem, a nie na emulatorze
Pobrano aplikację ze sklepu Play
Nadal otrzymuję komunikat o błędzie „Nie znaleziono szukanego elementu” .
Po zmarnowaniu 2-3 dni dowiedziałem się, że działa tylko wtedy, gdy w sklepie Play jest ustawiony jakiś tryb płatności .
Podczas gdy większość odpowiedzi dotyczy starego zakupu IAB i zaimplementowałem nowe API klienta rozliczeniowego, czyli -
implementation 'com.android.billingclient:billing:1.0'
, znalezienie rozwiązania nie było łatwe.Jeśli tak jest w przypadku kogoś, dodanie trybu płatności może pomóc w rozwiązaniu tego błędu. Musisz dodać jeden nawet w celu przetestowania go, jednak nie zostanie naliczony opłaty za identyfikatory e-mail dodane jako testerzy licencji.
źródło