Se un'applicazione invia una richiesta utilizzando l'API Play Integrity e la chiamata non va a buon fine, viene restituito un codice di errore. Il tipo di codice di errore restituito dipende dal tipo di richiesta:
- Richieste standard: l'API restituisce un valore StandardIntegrityErrorCode.
- Richieste classiche: l'API restituisce un valore IntegrityErrorCode.
Strategie per i nuovi tentativi
Ti consigliamo di utilizzare il backoff esponenziale per le operazioni di Play Integrity che si verificano in background e non influiscono sull'esperienza utente mentre l'utente è nella sessione.
Ad esempio, è opportuno implementarla quando si confermano i nuovi acquisti, perché questa operazione può avvenire in background e la conferma non deve necessariamente avvenire in tempo reale se si verifica un errore.
Dopo il primo errore, inizia con un ritardo iniziale di 5 secondi prima di riprovare.
Implementare una strategia per i nuovi tentativi con un numero massimo di tentativi come condizione di uscita utilizzando ogni volta un ritardo aumentato esponenzialmente (10, 20 secondi).
Durante questi tentativi, controlla la connessione di rete e non sovraccaricare il dispositivo.
Se continui a visualizzare errori dopo tre nuovi tentativi, considera il risultato come se il client non abbia superato tutti i controlli di integrità. L'errore può essere causato da diversi motivi, inclusi, a titolo esemplificativo, un dispositivo sovraccarico, problemi di connessione di rete o un tentativo da parte di un utente malintenzionato.
Valori dei codici di errore per la libreria Java
Valori dei codici di errore aggiuntivi per la libreria nativa
Codici di errore ripetibili
La causa di questi errori è talvolta dovuta a condizioni temporanee, perciò devi riprovare a effettuare la chiamata.
NETWORK_ERROR
(codice di errore -3)
Questo errore indica che si è verificato un problema con la connessione di rete tra il dispositivo e i sistemi Google Play.
Possibile risoluzione
Per eseguire il ripristino, chiedi all'utente di verificare la connettività di rete e utilizza semplici nuovi tentativi o backoff esponenziale, a seconda dell'azione che ha attivato l'errore.
Vedi anche
NETWORK_ERROR
per le richieste classiche.
TOO_MANY_REQUESTS
(codice di errore -8)
L'app di chiamata sta inviando troppe richieste all'API ed è stata limitata.
Possibile risoluzione
- Richiedi di aumentare il numero massimo giornaliero di richieste
- Riprova con un backoff esponenziale.
Vedi anche
TOO_MANY_REQUESTS
per le richieste classiche.
GOOGLE_SERVER_UNAVAILABLE
(codice di errore -12)
Errore interno del server Google sconosciuto.
Possibile risoluzione
Riprova con un backoff esponenziale. Valuta la possibilità di segnalare un bug se il problema persiste.
Vedi anche
GOOGLE_SERVER_UNAVAILABLE
per le richieste classiche.
CLIENT_TRANSIENT_ERROR
(codice di errore -18)
Si è verificato un errore temporaneo sul dispositivo client.
Per le richieste API standard, questa funzionalità è supportata a partire dalla versione 1.3.0 della libreria API Play Integrity per Kotlin e Java, del plug-in di Google Play Integrity per Unity 1.3.0 o successive e dell'SDK nativo della libreria di base Play 1.13.0 o versioni successive.
Possibile risoluzione
Riprova con un backoff esponenziale.
Vedi anche
CLIENT_TRANSIENT_ERROR
per le richieste classiche.
Nota: quando viene segnalato durante l'utilizzo di una richiesta API classica, il valore restituito è -17.
INTERNAL_ERROR
(codice di errore -100)
Errore interno sconosciuto.
Possibile risoluzione
Riprova con un backoff esponenziale. Considera la possibilità di segnalare un bug se il problema persiste.
Vedi anche
INTERNAL_ERROR
per le richieste classiche.
STANDARD_INTEGRITY_INTERNAL_ERROR
(codice di errore -100)
Errore interno sconosciuto.
Possibile risoluzione
Riprova con un backoff esponenziale. Considera la possibilità di segnalare un bug se il problema persiste.
Vedi anche
Per le richieste classiche, visita la pagina INTEGRITY_INTERNAL_ERROR
.
STANDARD_INTEGRITY_INITIALIZATION_FAILED
(codice di errore -102)
Si è verificato un errore durante l'inizializzazione dell'API Standard Integrity.
Possibile risoluzione
Riprova con un backoff esponenziale. Considera la possibilità di segnalare un bug se il problema persiste.
Vedi anche
Per le richieste classiche, visita la pagina INTEGRITY_INITIALIZATION_FAILED
.
Codici di errore non irreversibili
I tentativi automatici non sono di aiuto in questi casi. Tuttavia, un nuovo tentativo manuale potrebbe essere utile se l'utente risolve la condizione che ha causato il problema. Ad esempio, se l'utente aggiorna la versione del Play Store con una versione supportata, potrebbe funzionare un nuovo tentativo manuale dell'operazione iniziale.
API_NOT_AVAILABLE
(codice di errore -1)
La versione del Play Store installata sul dispositivo potrebbe essere precedente e l'API Integrity non è disponibile. Un'altra possibilità è che l'API Integrity non sia abilitata in Google Play Console.
Possibile risoluzione
- Assicurati che l'API Integrity sia abilitata in Google Play Console.
- Chiedi all'utente di aggiornare il Play Store.
Vedi anche
Visita la pagina API_NOT_AVAILABLE
per le richieste classiche.
PLAY_STORE_NOT_FOUND
(codice di errore -2)
Sul dispositivo non è stata trovata alcuna app ufficiale del Play Store.
Possibile risoluzione
Chiedi all'utente di installare o attivare il Google Play Store.
Vedi anche
Visita la pagina PLAY_STORE_NOT_FOUND
per le richieste classiche.
PLAY_STORE_ACCOUNT_NOT_FOUND
(codice di errore -4)
Nota: questo dato viene registrato solo per le richieste classiche tramite
IntegrityErrorCode
.
Nessun account Play Store trovato sul dispositivo. Tieni presente che ora l'API Play Integrity supporta le richieste non autenticate. Questo codice di errore è usato solo per le versioni precedenti del Play Store che non sono supportate.
Possibile risoluzione
Chiedi all'utente di eseguire l'aggiornamento e accedere al Google Play Store.
APP_NOT_INSTALLED
(codice di errore -5)
L'app per le chiamate non è installata. Si è verificato un problema (probabilmente un attacco).
Possibile risoluzione
Nessuna azione. Tratta il risultato come se il client non avesse superato tutti i controlli di integrità.
Vedi anche
Visita la pagina APP_NOT_INSTALLED
per le richieste classiche.
PLAY_SERVICES_NOT_FOUND
(codice di errore -6)
Play Services non è disponibile o deve essere aggiornato.
Possibile risoluzione
Chiedi all'utente di installare, aggiornare o attivare Play Services.
Vedi anche
Visita la pagina APP_NOT_INSTALLED
per le richieste classiche.
APP_UID_MISMATCH
(codice di errore -7)
L'UID (ID utente) dell'app per le chiamate non corrisponde a quello di Gestione pacchetti.
Possibile risoluzione
Nessuna azione. Tratta il risultato come se il client non avesse superato tutti i controlli di integrità.
Vedi anche
Visita la pagina APP_UID_MISMATCH
per le richieste classiche.
CANNOT_BIND_TO_SERVICE
(codice di errore -9)
Associazione al servizio nel Play Store non riuscita. Ciò può essere dovuto all'installazione di una versione precedente del Play Store sul dispositivo.
Possibile risoluzione
Chiedi all'utente di aggiornare Google Play Store.
Vedi anche
Visita la pagina CANNOT_BIND_TO_SERVICE
per le richieste classiche.
NONCE_TOO_SHORT
(codice di errore -10)
Nota: questo dato viene registrato solo per le richieste classiche tramite
IntegrityErrorCode
.
La lunghezza del nonce è troppo breve. Il nonce deve avere una dimensione minima di 16 byte prima della codifica Base64.
Possibile risoluzione
Riprova con un nonce più lungo.
NONCE_TOO_LONG
(codice di errore -11)
Nota: questo dato viene registrato solo per le richieste classiche tramite
IntegrityErrorCode
.
La lunghezza del nonce è troppo lunga. Il nonce deve essere inferiore a 500 byte prima della codifica Base64.
Possibile risoluzione
Riprova con un nonce più breve.
NONCE_IS_NOT_BASE64
(codice di errore -13)
Nota: questo dato viene registrato solo per le richieste classiche tramite
IntegrityErrorCode
.
Il nonce non è codificato come stringa senza wrapping Base64 sicura per il web.
Possibile risoluzione
Riprova con un nonce nel formato corretto.
PLAY_STORE_VERSION_OUTDATED
(codice di errore -14)
L'app Google Play Store deve essere aggiornata.
Possibile risoluzione
Chiedi all'utente di aggiornare Google Play Store.
Vedi anche
Visita la pagina PLAY_STORE_VERSION_OUTDATED
per le richieste classiche.
PLAY_SERVICES_VERSION_OUTDATED
(codice di errore -15)
Google Play Services deve essere aggiornato.
Possibile risoluzione
Chiedi all'utente di aggiornare Google Play Services.
Vedi anche
Visita la pagina PLAY_SERVICES_VERSION_OUTDATED
per le richieste classiche.
CLOUD_PROJECT_NUMBER_IS_INVALID
(codice di errore -16)
Il numero di progetto cloud fornito non è valido.
Possibile risoluzione
Utilizza il numero di progetto Cloud per il progetto Cloud per cui hai abilitato l'API Play Integrity.
Vedi anche
Visita la pagina CLOUD_PROJECT_NUMBER_IS_INVALID
per le richieste classiche.
REQUEST_HASH_TOO_LONG
(codice di errore -17)
Nota: questo valore viene fornito solo quando si utilizza la richiesta standard tramite StandardIntegrityErrorCode
.
Il valore requestHash
fornito è troppo lungo. La lunghezza del campo requestHash
deve essere inferiore
a 500 caratteri.
Possibile risoluzione
Riprova con un requestHash
più breve.
INTEGRITY_TOKEN_PROVIDER_INVALID
(codice di errore -19)
Nota: questo viene fornito solo per le richieste standard tramite
StandardIntegrityErrorCode
.
StandardIntegrityTokenProvider
non valido. Questo codice di errore è disponibile solo per le richieste API standard, dove è supportato a partire dalla versione della libreria 1.3.0 per i linguaggi di programmazione Kotlin e Java, dal plug-in Google Play Integrity per Unity 1.3.0 o versioni successive e da Play Core Native SDK 1.13.0 o versioni successive.
Possibile risoluzione
Richiedi un nuovo provider di token di integrità.
STANDARD_INTEGRITY_INITIALIZATION_NEEDED
(codice di errore -101)
StandardIntegrityManager
non è stato inizializzato.
Possibile risoluzione
Chiama prima il numero StandardIntegrityManager_init()
.
Vedi anche
Per le richieste classiche, vedi INTEGRITY_INITIALIZATION_NEEDED
STANDARD_INTEGRITY_INVALID_ARGUMENT
(codice di errore -103)
Argomento non valido passato all'API Standard Integrity.
Possibile risoluzione
Riprova con l'argomento corretto.
Vedi anche
Per le richieste classiche, vedi INTEGRITY_INVALID_ARGUMENT
.