Anda baru saja menerapkan Layanan Penagihan Play di aplikasi Android atau Progressive Web App dan pengguna dapat membeli produk digital Anda. Sekarang saatnya menerapkan beberapa komponen utama Layanan Penagihan Play di server backend Anda.
Google Play Developer API
Google Play Developer API memiliki dua komponen: Subscriptions and In-app Purchases API dan Publishing API. Subscriptions and In-app Purchases API terdiri dari resource REST berikut untuk membantu mengelola produk dan pembelian:
inappproducts: pengelolaan katalog produk dalam aplikasi dan langgananpurchases.products: status pembelian produk dalam aplikasipurchases.subscriptions: status pembelian dan pengelolaan langganan
Anda dapat menggunakan Google Play Developer API secara langsung sebagai REST API, atau library klien dapat membantu Anda memulai pengembangan dengan cepat. Library klien untuk semua bahasa yang didukung dapat ditemukan di sini. Ikuti panduan Memulai untuk Google Play Developer API guna menautkan project API dan menyiapkan klien akses API.
Mencantumkan semua produk dalam aplikasi
Saat membuat kueri untuk detail produk yang tersedia di frontend (di aplikasi Android atau Progressive Web App), Anda harus menentukan daftar ID produk. Anda dapat menerapkan hal ini di server backend dengan metode Play Developer API inappproducts.list yang akan mencantumkan semua produk dalam aplikasi dan langganan yang telah Anda buat di Konsol Play. Pastikan untuk memeriksa status setiap produk dan hanya mengirimkan produk active ke klien aplikasi Anda.
Memverifikasi pembelian sebelum memberikan hak
Bagian penting dalam menerapkan Layanan Penagihan Play di aplikasi Android atau Progressive Web App adalah memastikan Anda memverifikasi pembelian sebelum memberikan hak kepada pengguna. Saat memberikan hak kepada pengguna, Anda memberikan akses ke manfaat atau konten yang terkait dengan item yang mereka beli. Karena hal ini memerlukan penanganan data sensitif, hal ini harus ditangani di server backend.
Google Play Developer API menyediakan metode purchases.products:get dan purchases.subscriptions:get. Gunakan ini dengan token pembelian yang diambil dalam aplikasi atau disimpan di server backend Anda untuk memverifikasi bahwa pembelian tersebut sah. Anda harus melacak token pembelian di server backend untuk pembelian tambahan dan verifikasi hak pengguna. Lihat dokumentasi Layanan Penagihan Google Play tentang memverifikasi pembelian untuk mengetahui detail selengkapnya tentang langkah-langkah yang harus Anda lakukan.
Pembelian dalam aplikasi
Setelah menerima token pembelian dari klien, backend Anda harus memanggil Google Play Developer API dan memvalidasi bahwa token tersebut belum digunakan. Kolom purchaseState pembelian yang valid adalah 1.
Jika pembelian valid, klien harus mengonfirmasi pembelian dan memberikan hak setelah menerima respons dari server.
Pembelian langganan
Mirip dengan memverifikasi pembelian dalam aplikasi, server backend Anda harus memanggil Google Play Developer API setelah menerima token pembelian dari klien, dan memvalidasi bahwa langganan masih valid.
Klien Anda harus memberikan hak jika kolom expiryTimeMillis langganan lebih besar dari waktu saat ini.
Ini juga saat yang tepat untuk memeriksa kolom linkedPurchaseToken dan memperbarui database langganan Anda dengan tepat untuk menangani upgrade, downgrade, dan alur langganan lainnya. Bagian selanjutnya dari halaman ini akan membahas detail lebih lanjut.
Memastikan status backend tetap diperbarui
Jika aplikasi Anda tersedia di berbagai platform (yang mungkin juga menggunakan metode pembayaran yang berbeda), melacak pengguna dan pembelian mereka di server backend akan memastikan bahwa pengguna dapat mengakses hak yang sama di seluruh perangkat dan platform yang mereka gunakan untuk mengakses aplikasi Anda.
Hal ini dapat sesederhana memiliki database tempat Anda menyimpan catatan pengguna dan hak mereka saat ini. Kemudian, saat mereka melakukan pembelian atau menggunakan haknya, Anda harus memperbaruinya. Saat pengguna mengakses aplikasi Anda dari platform lain, Anda dapat mengambil hak yang sesuai dari backend sehingga pengguna dapat mengaksesnya.
Menangani perubahan status langganan
Langganan dapat melalui berbagai perubahan status selama siklus prosesnya dan Anda harus memastikan untuk merespons setiap perubahan tersebut dengan tepat. Pelajari lebih lanjut cara menangani siklus proses langganan agar backend Anda selalu terbaru.
Subscription linkedPurchaseToken
Seperti yang diuraikan dalam dokumentasi langganan, setiap alur pembelian Google Play baru (pembelian awal, upgrade, atau downgrade) akan menghasilkan token pembelian baru. Kolom linkedPurchaseToken memungkinkan Anda mengenali saat beberapa token pembelian berasal dari langganan yang sama.
Setiap kali Anda memverifikasi langganan, backend Anda harus memeriksa apakah kolom linkedPurchaseToken ditetapkan. Jika ya, nilai dalam kolom tersebut mewakili token sebelumnya yang kini telah diganti. Anda harus segera menandai token sebelumnya sebagai tidak valid agar pengguna tidak dapat menggunakannya untuk mengakses konten Anda.
Misalnya, saat backend menerima token pembelian A untuk pembelian awal, dengan kolom linkedPurchaseToken yang kosong, backend akan mengaktifkan hak untuk token tersebut. Kemudian, saat backend menerima token pembelian B baru setelah upgrade, backend akan memeriksa kolom linkedPurchaseToken, melihat bahwa kolom tersebut disetel ke A, dan menonaktifkan hak untuk token pembelian A.

Untuk pembahasan mendetail tentang penerapan linkedPurchaseToken, buka Menerapkan linkedPurchaseToken dengan benar untuk mencegah langganan duplikat.
Notifikasi developer real-time
Metode purchases.subscriptions:get Google Play Developer API adalah sumber tepercaya untuk mengelola langganan pengguna. Jika Anda mengelola status pelanggan di server backend yang aman, Anda harus menyinkronkan statusnya dengan server Google. Namun, polling Google Play Developer API yang sering dapat menyebabkan batas kuota API terlampaui dan penundaan dalam menerima notifikasi untuk tindakan pengguna yang penting (seperti pembatalan atau upgrade langganan).
Notifikasi Developer Real-Time (RTDN) adalah fitur Layanan Penagihan Google Play yang mengirimkan notifikasi instan ke server Anda saat status hak pelanggan berubah (misalnya, langganan dibeli, langganan dibatalkan, langganan ditangguhkan). Dengan RTDN, Anda dapat menyinkronkan database pelanggan hanya dengan merespons notifikasi ini, bukan melakukan polling pada Google Play Developer API secara rutin.
Server backend Anda akan menerima SubscriptionNotification untuk peristiwa yang memengaruhi status langganan seperti perpanjangan dan pembatalan. Kemudian, panggil Google Play Developer API dengan token pembelian dalam notifikasi untuk mendapatkan status lengkap dan memperbarui status backend Anda sendiri.
Anda dapat mengonfigurasi RTDN untuk aplikasi dengan mengikuti petunjuk ini. Kemudian, Anda harus menyiapkan server backend untuk menggunakan pesan ini.
Lihat referensi RTDN lengkap untuk mengetahui informasi selengkapnya.