2013-05-11 6 views
5

enter image description here Attualmente sto sviluppando un gioco di piccole dimensioni con il servizio di fatturazione in-app di Google.Errore IAB Questo elemento è già in uso

E faccio riferimento a Trivial Drive del progetto di esempio di Google. Lasciate che vi chieda l'interruzione della connessione durante gli acquisti di Google Play.

È OK quando si avvia il flusso di acquisto con la normale connessione internet.

Ho provato così. Non appena viene avviato il flusso di acquisto, disconnettere la connessione Internet (scollegando la LAN dei router). Dopo circa 2-3 minuti, mostra il timeout della connessione. Nell'account commerciante, il trasferimento di denaro è fatto. Ma quando interrogo tutti gli oggetti di proprietà, non vi è alcun oggetto di proprietà di questo ID (acquistato di recente). E quando provo ad acquistare di nuovo questo articolo, mostra "Errore Hai già posseduto questo oggetto".

enter image description here

Come posso risolvere questo problema? Qualcuno ha riscontrato questo problema?

Si prega di aiuto. Apprezzo tutti i commenti e gli aiuti. Grazie.

+1

Non penso che l'account Google commerciante e Play sarà completamente fuori sincrono da parte di Google; se questo fosse il caso sarebbe ampiamente noto. Ciò che accade, tuttavia, è che [il servizio GP IAB V3 utilizza la memorizzazione nella cache locale] (http://stackoverflow.com/a/14830007/1856738), in modo tale che la tua app debba essere solida a tale riguardo. - Sfortunatamente, ciò che descrivi non è un problema in sé, quindi, a meno che non descrivi il problema specifico che hai a questo proposito, l'unico suggerimento possibile è quello di rendere la tua app solida rispetto a questo. –

+0

Ci scusiamo per il mio modo improprio di porre la domanda. Grazie per il tuo suggerimento –

+0

Im bloccato con lo stesso problema. Ho avuto un problema di connettività wifi che ha provocato un errore di timeout e ora un errore "hai già questo articolo". Questo sta causando l'arresto anomalo dell'app all'avvio. Dove posso andare a svuotare il token dal mio account Google lol? (sembra che dovrebbe avere un cruscotto da qualche parte bc succede molto secondo StackOverflow 0.o) – NukeouT

risposta

1

I flussi di Google IAP richiedono la chiamata di un'API consumePurchase() dopo aver effettuato un acquisto.

Quello che devi fare è chiamare l'API getPurchases(), questo restituirà un elenco di acquisti insieme a purchaseToken. Quindi è necessario iterare attraverso di essi e chiamare l'API consumePurchase() per i prodotti acquistati non consumati.

Per ulteriori informazioni, consultare l'API reference.

+0

Grazie per aver risposto, Vinay S Shenoy. Non sono riuscito a esprimere che gli articoli non sono supportati per essere consumati. Sono solo pacchetti di giochi per solo giocare. Quando ho chiamato questo metodo skuList.addAll (inv.getAllOwnedSkus (itemType)); Restituiva sempre l'ID prodotto di mia proprietà. Ma nel caso precedente, non contiene l'ID acquistato di recente. Mi sono chiesto perché Google non restituisce l'ID già acquistato (il denaro è trasferito) alla lista di articoli di proprietà. –

+0

Hmm .. Non ho lavorato molto con le API IAP .. Se chiami 'getPurchases()', viene restituito nell'API? –

+0

A fini di chiarimento: semplicemente non è vero che Google IAB "richiede" di chiamare 'consumePurchase()' dopo aver fatto un purcahse.In primo luogo, alcuni articoli non verranno consumati e, in secondo luogo, la domanda in cui deve essere segnalato esattamente il consumo dipende dal caso, nonostante la descrizione fornita da Google. –