Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Memerangi penipuan dan penyalahgunaan

Semakin populer aplikasi Anda, hal ini juga dapat menarik perhatian pengguna berbahaya yang ingin menyalahgunakan aplikasi Anda. Topik ini menjelaskan rekomendasi yang harus dipakai untuk membantu mencegah serangan ini pada integrasi penagihan Anda dan mengurangi dampak penyalahgunaan dalam aplikasi Anda.

Memindahkan logika sensitif ke backend Anda

Sebanyak apa pun izin desain aplikasi Anda, pindahkan data dan logika sensitif ke server backend yang Anda kontrol. Semakin banyak data dan logika yang Anda miliki di perangkat frontend, semakin rentan untuk dimodifikasi atau diubah.

Misalnya, game catur online harus memvalidasi semua pergerakan di backend, bukan memercayai bahwa frontend akan selalu mengirim pergerakan resmi.

Selain itu, jika Anda menemukan masalah keamanan atau kerentanan, bergantung pada desain sistem Anda, mungkin akan lebih mudah untuk men-debug, memperbaiki, dan meluncurkan update pada backend bukan pada frontend.

Memverifikasi pembelian sebelum memberikan hak

Kasus khusus data dan logika sensitif yang harus ditangani di backend adalah verifikasi pembelian. Setelah pengguna telah melakukan pembelian, Anda harus melakukan langkah berikut:

  1. Kirim purchaseToken yang sesuai ke backend Anda. Ini berarti Anda harus menyimpan data semua nilai purchaseToken untuk semua pembelian.
  2. Verifikasi bahwa nilai purchaseToken untuk pembelian saat ini tidak cocok dengan nilai purchaseToken sebelumnya. purchaseToken bersifat unik secara global, sehingga Anda dapat menggunakan nilai ini dengan aman sebagai kunci utama dalam database.
  3. Gunakan endpoint Purchases.products:get atau Purchases.subscriptions:get di Google Play Developer API untuk verifikasi dengan Google bahwa pembelian tersebut sah.
  4. Jika pembelian sah dan belum pernah digunakan sebelumnya, kemudian Anda dapat dengan aman memberikan hak atas langganan atau item dalam aplikasi.
  5. Untuk langganan, saat linkedPurchaseToken ditetapkan dalam Purchases.subscriptions:get, Anda juga harus menghapus linkedPurchaseToken dari database dan mencabut hak yang diberikan ke linkedPurchaseToken untuk memastikan bahwa beberapa pengguna tidak diberi hak atas pembelian yang sama.

Melindungi konten yang tidak dikunci

Untuk mencegah pengguna berbahaya mendistribusikan ulang konten yang tidak dikunci, jangan paketkan konten tersebut ke dalam file APK Anda. Sebagai gantinya, lakukan salah satu hal berikut:

  • Gunakan layanan real-time untuk menayangkan konten, seperti content feed. Menayangkan konten melalui layanan real-time juga memungkinkan konten Anda tetap baru.
  • Gunakan server jarak jauh untuk menayangkan konten.

Saat menayangkan konten dari server jarak jauh atau layanan real-time, Anda dapat menyimpan konten yang tidak dikunci di memori atau kartu SD perangkat. Jika Anda menyimpan konten di kartu SD, pastikan untuk mengenkripsi konten tersebut dan menggunakan kunci enkripsi khusus perangkat.

Mendeteksi dan menangani pembelian yang dibatalkan

Pembelian yang dibatalkan adalah pembelian yang telah dibatalkan, dicabut, atau ditagih kembali. Jika pembelian yang dibatalkan sebelumnya pernah memberikan izin kepada pengguna atas item dalam aplikasi atau konten lainnya, Anda dapat menggunakan Voided Purchases API untuk memperoleh alasan pembatalan pembelian beserta konten terkait yang dapat Anda ambil kembali.

Pembelian item dalam aplikasi dan langganan dapat dibatalkan karena berbagai alasan, termasuk:

  • Pembelian dibatalkan, baik oleh pengguna, developer, maupun Google. Untuk langganan, perlu diperhatikan bahwa hal ini merujuk pada pembatalan pembelian langganan, bukan pembatalan langganan itu sendiri.
  • Pembelian ditagih kembali.
  • Developer aplikasi membatalkan atau mengembalikan dana pesanan pengguna dan mencentang opsi "cabut" pada konsol.

Berdasarkan alasan pembatalan pembelian, dan memperhitungkan data perilaku pengguna sebelumnya, Anda dapat memutuskan suatu tindakan. Kami merekomendasikan untuk mengimplementasikan satu atau beberapa langkah berikut:

  • Jalankan pengambilan kembali: Saat pembelian dibatalkan, Anda dapat mengambil kembali item yang tidak digunakan seolah-olah tidak pernah dibeli. Misalnya, jika pembelian mata uang dalam game dibatalkan, Anda dapat mengambil kembali mata uang yang telah diberikan kepada pengguna tersebut. Apabila pengguna telah menghabiskan mata uang tersebut, pertimbangkan untuk menetapkan saldo mata uang tersebut menjadi negatif dan membatasi aktivitas aplikasi serta pembelian di masa mendatang hingga saldo mata uang menjadi positif.
  • Implementasi beberapa teguran: Pertimbangkan untuk memberikan tindakan ringan bagi pengguna yang baru pertama kali melanggar, seperti menampilkan peringatan dalam aplikasi. Untuk pelanggar berulang, pertimbangkan tindakan yang lebih berat.
  • Nonaktifkan pembelian untuk sementara: Seperti penerapan beberapa teguran, pertimbangkan untuk menonaktifkan pembelian bagi pengguna yang melakukan pembatalan pembelian sampai Anda dapat menyelidiki alasannya secara lebih mendetail.
  • Tolak akses aplikasi untuk sementara atau permanen: Untuk kasus ekstrem dengan aktivitas berbahaya yang terus berulang, pertimbangkan untuk menolak akses ke aplikasi Anda, baik untuk sementara maupun permanen.
  • Lakukan panggilan ke Voided Purchases API dengan cukup sering: Saat Anda mendeteksi satu atau beberapa pembelian yang dibatalkan, pertimbangkan untuk melakukan panggilan yang lebih sering ke Voided Purchases API guna mengambil kembali pembelian sebelum pengguna menggunakannya. Anda dapat menemukan informasi selengkapnya tentang kuota Voided Purchases API dalam dokumentasi Voided Purchases API.

Membantu Google mendeteksi penipuan sebelum terjadi

Beberapa jenis penipuan berkaitan dengan pengguna berbahaya yang membuat beberapa akun Google dan akun dalam aplikasi untuk menyembunyikan aktivitas mereka.

Gunakan metode setObfuscatedAccountId dan setObfuscatedProfileId pada builder agar BillingFlowParams membantu Google memetakan akun Google ke akun dalam aplikasi.

Google menggunakan data ini untuk mendeteksi perilaku mencurigakan dan memblokir beberapa jenis transaksi penipuan sebelum transaksi tersebut diselesaikan.

Mengambil tindakan terhadap pelanggaran hak cipta dan merek dagang

Jika Anda menggunakan server jarak jauh untuk menayangkan atau mengelola konten, minta aplikasi Anda untuk memverifikasi status pembelian konten yang sudah terbuka setiap kali pengguna mengaksesnya. Hal ini memungkinkan Anda mencabut penggunaannya saat diperlukan dan meminimalkan pembajakan. Jika Anda menjumpai konten Anda didistribusikan kembali di Google Play, pastikan untuk bertindak dengan cepat dan tegas. Untuk detail selengkapnya, lihat halaman Pertanyaan Umum Terkait Hak Cipta di Pusat Bantuan Hak Cipta.