Se la tua app invia una richiesta all'API Play Integrity e la chiamata non va a buon fine, l'app riceve un codice di errore. Questi errori possono verificarsi per vari motivi, ad esempio problemi ambientali come una connessione di rete scadente, problemi di integrazione dell'API o attività dannose e attacchi attivi. Il tipo di codice di errore restituito dipende dal tipo di richiesta:
- Richieste standard: l'API restituisce un StandardIntegrityErrorCode.
- Richieste classiche: l'API restituisce un IntegrityErrorCode.
Strategie di ripetizione
Utilizza il backoff esponenziale per le operazioni di Play Integrity che si verificano in background e non influiscono sull'esperienza utente durante la sessione.
Ad esempio, è opportuno implementare questa funzionalità quando si confermano i nuovi acquisti perché questa operazione può avvenire in background e il riconoscimento non deve avvenire in tempo reale se si verifica un errore.
Dopo il primo errore, inizia con un ritardo iniziale di 5 secondi prima di ritentare.
Implementa una strategia di ripetizione con un numero massimo di tentativi come condizione di uscita utilizzando ogni volta un ritardo aumentato in modo esponenziale (10 secondi, 20 secondi).
Durante l'esecuzione di questi tentativi di ripetizione, controlla la connessione di rete e non sovraccaricare il dispositivo.
Se continui a visualizzare errori dopo tre tentativi di ripetizione, considera il risultato come se il client non avesse superato tutti i controlli di integrità. L'errore può essere dovuto a diversi motivi, tra cui (a titolo esemplificativo): un dispositivo sovraccaricato, problemi di connessione di rete o un tentativo da parte di un malintenzionato.
Valori dei codici di errore per la libreria Java
Valori aggiuntivi dei codici di errore per la libreria nativa
Codici di errore non irreversibili
A volte la causa di questi errori è dovuta a condizioni transitorie, pertanto dovresti ritentare 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 di Google Play.
Possibile risoluzione
Per recuperare, chiedi all'utente di verificare la connettività di rete e di utilizzare tentativi di nuovo attacco semplici 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 chiamante invia troppe richieste all'API ed è stata limitata.
Possibile risoluzione
- Richiesta di aumento del 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 si verifica costantemente.
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 dell'API standard, questa funzionalità è supportata a partire dalla versione 1.3.0 della libreria dell'API Play Integrity per Kotlin e Java, del plug-in Google Play Integrity per Unity 1.3.0 o versioni successive e dell'SDK Play Core Native 1.13.0 o versioni successive.
Possibile risoluzione
Riprova con un backoff esponenziale.
Vedi anche
CLIENT_TRANSIENT_ERROR
per le richieste classiche.
Nota:se viene segnalato durante l'utilizzo di una richiesta dell'API classica, il valore restituito è -17.
INTERNAL_ERROR
(codice di errore -100)
Errore interno sconosciuto.
Possibile risoluzione
Riprova con un backoff esponenziale. Valuta la possibilità di segnalare un bug se l'errore si verifica costantemente.
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. Valuta la possibilità di segnalare un bug se l'errore si verifica costantemente.
Vedi anche
Per le richieste classiche, consulta 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. Valuta la possibilità di segnalare un bug se l'errore si verifica costantemente.
Vedi anche
Per le richieste classiche, consulta INTEGRITY_INITIALIZATION_FAILED
.
Codici di errore non ripetibili
In questi casi è improbabile che i tentativi automatici di recupero siano utili. 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 a 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 essere disponibile. Un'altra possibilità è che l'API Integrity non sia attivata in Google Play Console.
Possibile risoluzione
- Assicurati che l'API Integrity sia attivata in Google Play Console.
- Chiedi all'utente di aggiornare il Play Store.
Vedi anche
Per le richieste classiche, consulta API_NOT_AVAILABLE
.
PLAY_STORE_NOT_FOUND
(codice di errore -2)
Sul dispositivo non è stata trovata alcuna app Play Store ufficiale.
Possibile risoluzione
Chiedi all'utente di installare o attivare il Google Play Store.
Vedi anche
Per le richieste classiche, consulta PLAY_STORE_NOT_FOUND
.
PLAY_STORE_ACCOUNT_NOT_FOUND
(codice di errore -4)
Nota:questo valore viene riportato solo per le richieste classiche tramite
IntegrityErrorCode
.
Nessun account Play Store trovato sul dispositivo. Tieni presente che l'API Play Integrity ora supporta le richieste non autenticate. Questo codice di errore viene utilizzato solo per le versioni precedenti del Play Store che non sono supportate.
Possibile risoluzione
Chiedi all'utente di eseguire l'aggiornamento e di accedere al Google Play Store.
APP_NOT_INSTALLED
(codice di errore -5)
L'app per le chiamate non è installata. Si è verificato un problema (possibilmente un attacco).
Possibile risoluzione
Senza azione. Tratta il risultato come se il client non avesse superato tutti i controlli di integrità.
Vedi anche
Per le richieste classiche, consulta APP_NOT_INSTALLED
.
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
Per le richieste classiche, consulta APP_NOT_INSTALLED
.
APP_UID_MISMATCH
(codice di errore -7)
L'UID (ID utente) dell'app chiamante non corrisponde a quello di Package Manager.
Possibile risoluzione
Senza azione. Tratta il risultato come se il client non avesse superato tutti i controlli di integrità.
Vedi anche
Per le richieste classiche, consulta APP_UID_MISMATCH
.
CANNOT_BIND_TO_SERVICE
(codice di errore -9)
L'associazione al servizio nel Play Store non è riuscita. Questo può essere dovuto al fatto che sul dispositivo è installata una vecchia versione del Play Store.
Possibile risoluzione
Chiedi all'utente di aggiornare il Google Play Store.
Vedi anche
Per le richieste classiche, consulta CANNOT_BIND_TO_SERVICE
.
NONCE_TOO_SHORT
(codice di errore -10)
Nota:questo valore viene riportato solo per le richieste classiche tramiteIntegrityErrorCode
.
La lunghezza del nonce è troppo breve. Il nonce deve essere di almeno 16 byte prima della codifica base64.
Possibile risoluzione
Riprova con un nonce più lungo.
NONCE_TOO_LONG
(codice di errore -11)
Nota:questo valore viene riportato 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 valore viene riportato solo per le richieste classiche tramite
IntegrityErrorCode
.
Il nonce non è codificato come stringa sicura per il web senza a capo in base64.
Possibile risoluzione
Riprova con un nonce nel formato corretto.
PLAY_STORE_VERSION_OUTDATED
(codice di errore -14)
È necessario aggiornare l'app Google Play Store.
Possibile risoluzione
Chiedi all'utente di aggiornare il Google Play Store.
Vedi anche
Per le richieste classiche, consulta PLAY_STORE_VERSION_OUTDATED
.
PLAY_SERVICES_VERSION_OUTDATED
(codice di errore -15)
È necessario aggiornare Google Play Services.
Possibile risoluzione
Chiedi all'utente di aggiornare Google Play Services.
Vedi anche
Per le richieste classiche, consulta PLAY_SERVICES_VERSION_OUTDATED
.
CLOUD_PROJECT_NUMBER_IS_INVALID
(codice di errore -16)
Il numero del progetto cloud fornito non è valido.
Possibile risoluzione
Utilizza il numero del progetto Cloud per il progetto Cloud per cui hai attivato l'API Play Integrity.
Vedi anche
Per le richieste classiche, consulta CLOUD_PROJECT_NUMBER_IS_INVALID
.
REQUEST_HASH_TOO_LONG
(codice di errore -17)
Nota:questo errore viene segnalato solo quando si utilizza la richiesta standard tramite
StandardIntegrityErrorCode
.
Il valore requestHash
fornito è troppo lungo. La lunghezza di 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 valore viene riportato solo per le richieste standard tramiteStandardIntegrityErrorCode
.
Il valore StandardIntegrityTokenProvider
non è valido. Questo codice di errore è disponibile
solo per le richieste dell'API standard, dove è supportato 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 dall'SDK Play Core Native 1.13.0 o versioni successive.
Possibile risoluzione
Richiedi un nuovo fornitore 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
Consulta INTEGRITY_INITIALIZATION_NEEDED
per le richieste classiche
STANDARD_INTEGRITY_INVALID_ARGUMENT
(codice di errore -103)
Argomento non valido passato all'API Integrity standard.
Possibile risoluzione
Riprova con l'argomento corretto.
Vedi anche
Consulta INTEGRITY_INVALID_ARGUMENT
per le richieste classiche.