Mam przejściowy problem z rozliczaniem w aplikacji w wersji 3 przy użyciu IABHelper dostarczonego przez Google.IABHelper. queryInventoryAsync nie zwraca żadnych zakupów, ale uruchomienie przepływu produktów kończy się niepowodzeniem z "Elementem już posiadanym"
przed rozpoczęciem nowego zakupu sprawdzam na zakupy z niewykorzystanymi queryInventoryAsync. Jeśli zostanie znaleziony, zużyję niewykonane zakupy i rozpocznę nową transakcję, jeśli nie przejdę bezpośrednio do rozpoczęcia nowej transakcji. 99% czasu działa poprawnie.
Czasami gdy queryInventoryAsync zwraca żadnych niewykorzystanymi zakupów następujące launchPurchaseFlow nie z odpowiedzią: 7: Pozycja już własnością.
INFO [IABHelper] Starting async operation: refresh inventory
INFO [IABHelper] Querying owned items, item type: inapp
INFO [IABHelper] Package name: jp.co.mycompany.myapp
INFO [IABHelper] Calling getPurchases with continuation token: null
INFO [IABHelper] Owned items response: 0
INFO [IABHelper] Continuation token: null
INFO [IABHelper] Querying SKU details.
INFO [IABHelper] queryPrices: nothing to do because there are no SKUs.
INFO [IABHelper] Querying owned items, item type: subs
INFO [IABHelper] Package name: jp.co.mycompany.myapp
INFO [IABHelper] Calling getPurchases with continuation token: null
INFO [IABHelper] Owned items response: 0
INFO [IABHelper] Continuation token: null
INFO [IABHelper] Querying SKU details.
INFO [IABHelper] queryPrices: nothing to do because there are no SKUs.
INFO [IABHelper] Ending async operation: refresh inventory
INFO [IABHelper] Constructing buy intent for jp.co.mycompany.myapp.myitem, item type: inapp
INFO [IABHelper] Launching buy intent for jp.co.mycompany.myapp.myitem Request code: 1001
INFO [IABHelper] Ending async operation: launchPurchaseFlow
INFO [IABHelper] Purchase canceled - Response: 7:Item Already Owned
queryInventoryAsync mówi użytkownik nie posiada pozycję, ale launchPurchaseFlow mówi użytkownik robi.
dziwne po oczekiwania (czasami kilka minut, a czasami więcej) problem rozwiązuje się.
Czy ktoś doświadczył czegoś podobnego?
Dla odniesienia używam wersji IABHelper ostatnia aktualizacja 15 marca
Mam ten sam problem. Rozwiązałeś to.Może to być spowodowane przez lokalne buforowanie google – glo
Zdarza się to również, gdy masz czas oczekiwania przed wykonaniem połączenia konsumującego: przedmiot jest kupowany, ale potwierdzenie z google nigdy nie wraca do aplikacji (limit czasu): aplikacja tego nie zna musi skonsumować zakup, chyba że queryInventoryAsync zwróci coś, a zrobi to później dużo później z powodu buforowania. Co za żart. – Frank
I usunęli niezarządzanego, mówiąc, że "myślisz o nich jak zarządzane". Ok, ale dlaczego głupia usługa GooglePlay po kilku godzinach i wyczyszczona pamięć podręczna wciąż mówią, że nie mam zakupów? – Tertium