Menangani kode error Play Integrity API

Jika aplikasi membuat permintaan menggunakan Play Integrity API dan panggilan gagal, kode error akan ditampilkan. Jenis kode error yang ditampilkan bergantung pada jenis permintaan:

Strategi percobaan ulang

Sebaiknya gunakan backoff eksponensial untuk operasi Play Integrity yang terjadi di latar belakang dan tidak memengaruhi pengalaman pengguna saat pengguna berada dalam sesi.

Misalnya, Anda dapat menerapkan ini saat mengonfirmasi pembelian baru karena operasi ini dapat terjadi di latar belakang, dan konfirmasi tidak perlu terjadi secara real time jika terjadi error.

Setelah kegagalan pertama, mulailah dengan penundaan awal selama 5 detik sebelum mencoba lagi.

Implementasikan strategi percobaan ulang dengan jumlah upaya maksimum sebagai kondisi keluar menggunakan penundaan yang meningkat secara eksponensial setiap waktu (10 dtk, 20 dtk).

Saat mencoba ulang, periksa koneksi jaringan dan jangan melebihi beban perangkat.

Jika Anda terus melihat error setelah tiga kali percobaan ulang, perlakukan hasilnya seolah-olah klien telah gagal dalam semua pemeriksaan integritas. Error ini dapat disebabkan oleh beberapa alasan, termasuk (tetapi tidak terbatas pada): perangkat kelebihan beban, masalah koneksi jaringan, atau upaya oleh penyerang.

Error mengkodekan nilai untuk library java

IntegrityErrorCode StandardIntegrityErrorCode
-1 API_NOT_AVAILABLE API_NOT_AVAILABLE
-2 PLAY_STORE_NOT_FOUND PLAY_STORE_NOT_FOUND
-3 NETWORK_ERROR NETWORK_ERROR
-4 PLAY_STORE_ACCOUNT_NOT_FOUND
-5 APP_NOT_INSTALLED APP_NOT_INSTALLED
-6 PLAY_SERVICES_NOT_FOUND PLAY_SERVICES_NOT_FOUND
-7 APP_UID_MISMATCH APP_UID_MISMATCH
-8 TOO_MANY_REQUESTS TOO_MANY_REQUESTS
-9 CANNOT_BIND_TO_SERVICE CANNOT_BIND_TO_SERVICE
-10 NONCE_TOO_SHORT
-11 NONCE_TOO_LONG
-12 GOOGLE_SERVER_UNAVAILABLE GOOGLE_SERVER_UNAVAILABLE
-13 NONCE_IS_NOT_BASE64
-14 PLAY_STORE_VERSION_OUTDATED PLAY_STORE_VERSION_OUTDATED
-15 PLAY_SERVICES_VERSION_OUTDATED PLAY_SERVICES_VERSION_OUTDATED
-16 CLOUD_PROJECT_NUMBER_IS_INVALID CLOUD_PROJECT_NUMBER_IS_INVALID
-17 CLIENT_TRANSIENT_ERROR REQUEST_HASH_TOO_LONG
-18 CLIENT_TRANSIENT_ERROR
-19 INTEGRITY_TOKEN_PROVIDER_INVALID
-100 INTERNAL_ERROR INTERNAL_ERROR

Error tambahan memberi kode nilai untuk library native

IntegrityErrorCode StandardIntegrityErrorCode
-100 INTEGRITY_INTERNAL_ERROR STANDARD_INTEGRITY_INTERNAL_ERROR
-101 INTEGRITY_INITIALIZATION_NEEDED STANDARD_INTEGRITY_INITIALIZATION_NEEDED
-102 INTEGRITY_INITIALIZATION_FAILED STANDARD_INTEGRITY_INITIALIZATION_FAILED
-103 INTEGRITY_INVALID_ARGUMENT STANDARD_INTEGRITY_INVALID_ARGUMENT

Kode error yang dapat dicoba lagi

Penyebab error ini terkadang disebabkan oleh kondisi sementara, sehingga Anda harus mencoba lagi panggilan tersebut.

NETWORK_ERROR (Kode Error -3)

Error ini menunjukkan adanya masalah dengan koneksi jaringan antara perangkat dan sistem Play.

Kemungkinan resolusi

Untuk memulihkan, minta pengguna memeriksa konektivitas jaringan, dan gunakan percobaan ulang sederhana atau backoff eksponensial, bergantung pada tindakan mana yang memicu error.

Lihat juga

NETWORK_ERROR untuk permintaan klasik.

TOO_MANY_REQUESTS (Kode Error -8)

Aplikasi panggilan membuat terlalu banyak permintaan ke API dan sekarang telah dibatasi.

Kemungkinan resolusi

  1. Permintaan untuk meningkatkan jumlah maksimum permintaan harian Anda
  2. Coba lagi dengan backoff eksponensial.

Lihat juga

TOO_MANY_REQUESTS untuk permintaan klasik.

GOOGLE_SERVER_UNAVAILABLE (Kode Error -12)

Error server Google internal tidak diketahui.

Kemungkinan resolusi

Coba lagi dengan backoff eksponensial. Pertimbangkan untuk melaporkan bug jika error tersebut terus-menerus gagal.

Lihat juga

GOOGLE_SERVER_UNAVAILABLE untuk permintaan klasik.

CLIENT_TRANSIENT_ERROR (Kode Error -18)

Terjadi error sementara pada perangkat klien.

Untuk permintaan API Standar, hal ini didukung mulai versi 1.3.0 library Play Integrity API untuk Kotlin dan Java, Plugin Google Play Integrity untuk Unity 1.3.0 atau yang lebih tinggi, dan Play Core Native SDK 1.13.0 atau yang lebih tinggi.

Kemungkinan resolusi

Coba lagi dengan backoff eksponensial.

Lihat juga

CLIENT_TRANSIENT_ERROR untuk permintaan klasik.

Catatan: Jika dilaporkan saat menggunakan permintaan API Klasik, nilai yang ditampilkan adalah -17.

INTERNAL_ERROR (Kode Error -100)

Error internal tidak diketahui.

Kemungkinan resolusi

Coba lagi dengan backoff eksponensial. Sebaiknya laporkan bug jika terjadi kegagalan secara terus-menerus.

Lihat juga

INTERNAL_ERROR untuk permintaan klasik.

STANDARD_INTEGRITY_INTERNAL_ERROR (Kode Error -100)

Error internal tidak diketahui.

Kemungkinan resolusi

Coba lagi dengan backoff eksponensial. Sebaiknya laporkan bug jika terjadi kegagalan secara terus-menerus.

Lihat juga

Lihat INTEGRITY_INTERNAL_ERROR untuk permintaan klasik.

STANDARD_INTEGRITY_INITIALIZATION_FAILED (Kode Error -102)

Terjadi error saat melakukan inisialisasi Standard Integrity API.

Kemungkinan resolusi

Coba lagi dengan backoff eksponensial. Sebaiknya laporkan bug jika terjadi kegagalan secara terus-menerus.

Lihat juga

Lihat INTEGRITY_INITIALIZATION_FAILED untuk permintaan klasik.

Kode Error yang Tidak Dapat Dicoba Ulang

Percobaan ulang otomatis kemungkinan tidak akan membantu dalam kasus ini. Namun, percobaan ulang manual dapat membantu jika pengguna mengatasi kondisi yang menyebabkan masalah tersebut. Misalnya, jika pengguna mengupdate versi Play Store ke versi yang didukung, percobaan ulang manual operasi awal dapat berfungsi.

API_NOT_AVAILABLE (Kode Error -1)

Versi Play Store yang diinstal di perangkat mungkin sudah lama dan Integrity API tidak tersedia. Kemungkinan lainnya adalah Integrity API tidak diaktifkan di Konsol Google Play.

Kemungkinan resolusi

  • Pastikan Integrity API diaktifkan di Konsol Google Play.
  • Minta pengguna untuk mengupdate Play Store.

Lihat juga

Lihat API_NOT_AVAILABLE untuk permintaan klasik.

PLAY_STORE_NOT_FOUND (Kode Error -2)

Tidak ada aplikasi Play Store resmi yang ditemukan di perangkat.

Kemungkinan resolusi

Minta pengguna menginstal atau mengaktifkan Google Play Store.

Lihat juga

Lihat PLAY_STORE_NOT_FOUND untuk permintaan klasik.

PLAY_STORE_ACCOUNT_NOT_FOUND (Kode Error -4)

Catatan: Hal ini hanya dilaporkan untuk permintaan klasik melalui IntegrityErrorCode.

Tidak ditemukan akun Play Store di perangkat. Perlu diketahui bahwa Play Integrity API kini mendukung permintaan yang tidak diautentikasi. Kode error ini hanya digunakan untuk versi Play Store lama yang tidak memiliki dukungan.

Kemungkinan resolusi

Minta pengguna untuk mengupdate dan login ke Google Play Store.

APP_NOT_INSTALLED (Kode Error -5)

Aplikasi panggilan tidak diinstal. Terjadi masalah (mungkin berupa serangan).

Kemungkinan resolusi

Tidak dapat ditindaklanjuti. Perlakukan hasilnya seolah-olah klien gagal dalam semua pemeriksaan integritas.

Lihat juga

Lihat APP_NOT_INSTALLED untuk permintaan klasik.

PLAY_SERVICES_NOT_FOUND (Kode Error -6)

Layanan Play tidak tersedia atau perlu diupdate.

Kemungkinan resolusi

Minta pengguna menginstal, mengupdate, atau mengaktifkan Layanan Play.

Lihat juga

Lihat APP_NOT_INSTALLED untuk permintaan klasik.

APP_UID_MISMATCH (Kode Error -7)

UID (ID pengguna) aplikasi panggilan tidak cocok dengan ID dari Pengelola Paket.

Kemungkinan resolusi

Tidak dapat ditindaklanjuti. Perlakukan hasilnya seolah-olah klien gagal dalam semua pemeriksaan integritas.

Lihat juga

Lihat APP_UID_MISMATCH untuk permintaan klasik.

CANNOT_BIND_TO_SERVICE (Kode Error -9)

Gagal melakukan binding ke layanan di Play Store. Hal ini dapat disebabkan oleh versi Play Store lama yang masih terinstal di perangkat.

Kemungkinan resolusi

Minta pengguna mengupdate Google Play Store.

Lihat juga

Lihat CANNOT_BIND_TO_SERVICE untuk permintaan klasik.

NONCE_TOO_SHORT (Kode Error -10)

Catatan: Hal ini hanya dilaporkan untuk permintaan klasik melalui IntegrityErrorCode.

Panjang nonce terlalu singkat. Panjang nonce harus minimum 16 byte sebelum encoding base64.

Kemungkinan resolusi

Coba lagi dengan nonce yang lebih panjang.

NONCE_TOO_LONG (Kode Error -11)

Catatan: Hal ini hanya dilaporkan untuk permintaan klasik melalui IntegrityErrorCode.

Panjang nonce terlalu panjang. Panjang nonce harus kurang dari 500 byte sebelum encoding base64.

Kemungkinan resolusi

Coba lagi dengan nonce yang lebih pendek.

NONCE_IS_NOT_BASE64 (Kode Error -13)

Catatan: Hal ini hanya dilaporkan untuk permintaan klasik melalui IntegrityErrorCode.

Nonce tidak dienkode sebagai string no-wrap yang aman bagi web base64.

Kemungkinan resolusi

Coba lagi dengan nonce dalam format yang benar.

PLAY_STORE_VERSION_OUTDATED (Kode Error -14)

Aplikasi Google Play Store perlu diupdate.

Kemungkinan resolusi

Minta pengguna mengupdate Google Play Store.

Lihat juga

Lihat PLAY_STORE_VERSION_OUTDATED untuk permintaan klasik.

PLAY_SERVICES_VERSION_OUTDATED (Kode Error -15)

Layanan Google Play perlu diupdate.

Kemungkinan resolusi

Minta pengguna mengupdate layanan Google Play.

Lihat juga

Lihat PLAY_SERVICES_VERSION_OUTDATED untuk permintaan klasik.

CLOUD_PROJECT_NUMBER_IS_INVALID (Kode Error -16)

Nomor project cloud yang diberikan tidak valid.

Kemungkinan resolusi

Gunakan nomor project Cloud untuk project Cloud tempat Anda mengaktifkan Play Integrity API.

Lihat juga

Lihat CLOUD_PROJECT_NUMBER_IS_INVALID untuk permintaan klasik.

REQUEST_HASH_TOO_LONG (Kode Error -17)

Catatan: Hal ini hanya dilaporkan saat menggunakan permintaan standar melalui StandardIntegrityErrorCode.

requestHash yang diberikan terlalu panjang. Panjang requestHash harus kurang dari 500 karakter.

Kemungkinan resolusi

Coba lagi dengan requestHash yang lebih singkat.

INTEGRITY_TOKEN_PROVIDER_INVALID (Kode Error -19)

Catatan: Error ini hanya dilaporkan untuk permintaan standar melalui StandardIntegrityErrorCode.

StandardIntegrityTokenProvider tidak valid. Kode error ini hanya tersedia untuk permintaan API Standar, yang didukung mulai library versi 1.3.0 untuk bahasa pemrograman Kotlin dan Java, Plugin Google Play Integrity untuk Unity 1.3.0 atau yang lebih tinggi, dan Play Core Native SDK 1.13.0 atau yang lebih tinggi.

Kemungkinan resolusi

Minta penyedia token integritas baru.

STANDARD_INTEGRITY_INITIALIZATION_NEEDED (Kode Error -101)

StandardIntegrityManager tidak diinisialisasi.

Kemungkinan resolusi

Panggil StandardIntegrityManager_init() terlebih dahulu.

Lihat juga

Lihat INTEGRITY_INITIALIZATION_NEEDED untuk Permintaan Klasik

STANDARD_INTEGRITY_INVALID_ARGUMENT (Kode Error -103)

Argumen yang tidak valid diteruskan ke Standard Integrity API.

Kemungkinan resolusi

Coba lagi dengan argumen yang benar.

Lihat juga

Lihat INTEGRITY_INVALID_ARGUMENT untuk Permintaan Klasik.