Anda mungkin perlu melakukan tindakan pengelolaan pada langganan atau pembelian satu kali sebagai bagian dari bisnis sehari-hari. Misalnya, layanan pelanggan Anda mungkin perlu melakukan pengembalian dana penuh atau sebagian untuk pengguna, atau Anda mungkin perlu mencabut hak dalam kasus tertentu. Anda dapat mengelola pesanan dari Konsol Play, atau jika ingin mengelolanya dari sistem Anda sendiri, Anda dapat melakukannya dengan menggunakan Google Play Developer API.
Membatalkan langganan
Pembatalan langganan dapat dilakukan oleh pengguna atau developer.
Pembatalan yang dimulai pengguna
Pengguna dapat membatalkan langganan Google Play kapan saja menggunakan Play Store. Jika berlaku, Anda juga harus memberikan opsi bagi pengguna untuk membatalkan langganan mereka di aplikasi dan situs Anda.
Cara termudah untuk memungkinkan pengguna membatalkan langganan secara sukarela adalah dengan menyediakan deep link di aplikasi Anda ke Play Store, tempat mereka dapat melihat dan mengelola langganan.
Pembatalan yang dilakukan developer
Sebagai developer, Anda mungkin juga perlu memicu pembatalan dari backend.
purchases.subscriptions.cancel
API memungkinkan Anda membatalkan pembelian langganan.
Misalnya, Anda dapat menggunakan metode ini untuk menonaktifkan layanan lama.
Membatalkan langganan tidak akan memberikan pengembalian dana, dan pengguna akan tetap memiliki akses
hingga akhir periode penagihan saat ini.
Metode ini memungkinkan Anda menentukan jenis pembatalan berikut dalam parameter isi permintaan
cancellationType:
USER_REQUESTED_STOP_RENEWALS: Membatalkan langganan seolah-olah pengguna telah membatalkan dari Play Store. Pembayaran cicilan akan berlanjut selama sisa periode komitmen saat ini. Dari Play Store, pengguna dapat memulihkan langganan sebelum masa berlakunya habis, atau berlangganan kembali setelah masa berlakunya habis jika diaktifkan untuk paket dasar.
DEVELOPER_REQUESTED_STOP_PAYMENTS: Membatalkan langganan dan mencegah pembayaran lebih lanjut. Pengguna tidak dapat memulihkan atau berlangganan kembali langganan dari Play Store, tetapi Anda dapat mengizinkan mereka berlangganan lagi dalam aplikasi Anda.
Memungkinkan pengguna memulihkan langganan yang belum kedaluwarsa
Dalam beberapa skenario, Anda mungkin merasa berguna untuk mengizinkan pengguna memulihkan langganan yang belum habis masa berlakunya dari pusat langganan Play setelah Anda memicu pembatalan sebagai developer. Misalnya, Anda mungkin ingin menyediakan alur pembatalan dalam aplikasi yang disesuaikan. Berdasarkan logika bisnis Anda, Anda dapat memutuskan pembatalan mana yang dipicu dari backend yang dapat dipulihkan oleh pengguna.
Untuk menunjukkan bahwa pengguna dapat memulihkan pembatalan, kirim permintaan POST
ke API purchases.subscriptions.cancel, dan tetapkan parameter permintaan cancellationType
ke nilai USER_REQUESTED_STOP_RENEWAL.
Contoh:
- Token pembelian langganan
1a2b3c4d5e6f7g8h9i0j - Nama paket aplikasi
com.your.app - ID Langganan
your-subscription-product
Permintaan POST HTTP:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptions/your-subscription-product/tokens/1a2b3c4d5e6f7g8h9i0j:cancel
Isi permintaan:
{
"cancellationType": "USER_REQUESTED_STOP_RENEWAL"
}
Mengizinkan pengguna berlangganan kembali langganan yang sudah berakhir
Untuk mengizinkan berlangganan kembali langganan yang telah habis masa berlakunya, Anda harus mengaktifkan
opsi Berlangganan lagi di paket dasar langganan, lalu
membatalkan langganan dengan menyetel parameter cancellationType ke nilai
USER_REQUESTED_STOP_RENEWAL.
Mengizinkan pengguna untuk berlangganan lagi hanya di aplikasi Anda
Jika Anda telah menyetel parameter cancellationType ke DEVELOPER_REQUESTED_STOP
_PAYMENTS atau belum menyetel parameter cancellationType, pengguna tidak dapat memulihkan langganan mereka dari pusat langganan Play. Namun, pengguna dapat mendaftar ulang ke langganan melalui aplikasi Anda jika diperlukan.
Tindakan ini akan memicu Notifikasi developer real time SUBSCRIPTION_CANCELED. Tangani pembatalan ini seperti yang dijelaskan dalam
Pembatalan.
Menangguhkan penagihan
Anda dapat memperpanjang periode hak untuk langganan dengan
menggunakan metode subscriptionsv2.defer. Saat Anda menunda langganan dengan add-on, semua item dalam langganan akan ditunda dengan durasi yang sama. Selama periode penundaan, pengguna tetap berlangganan konten Anda, tetapi tidak dikenai biaya untuk waktu tambahan tersebut. Saat Anda menunda penagihan untuk langganan, informasi status akan diperbarui sebagaimana mestinya dan Anda akan melihatnya tercermin di kolom expiryTime dalam
informasi status pembelian:
- Untuk langganan berulang yang aktif, penagihan yang ditangguhkan memperpanjang tanggal perpanjangan berikutnya.
- Untuk paket prabayar, penundaan penagihan memperpanjang waktu habis masa berlaku.
Berikut beberapa contoh cara Anda dapat menggunakan penagihan yang ditangguhkan:
- Memberikan akses tanpa biaya kepada pengguna sebagai penawaran spesial, seperti memberikan satu minggu gratis kepada pelanggan lama karena telah mengisi survei masukan.
- Memberikan akses tanpa biaya kepada pelanggan sebagai tindakan layanan pelanggan, misalnya setelah gangguan yang berkepanjangan yang mungkin memengaruhi kemampuan mereka untuk menggunakan layanan Anda.
Penagihan dapat ditunda selama minimal satu hari dan hingga satu tahun per panggilan API. Untuk menunda akhir hak lebih lama lagi, panggil API lagi sebelum tanggal habis masa berlaku baru tiba.
Tindakan ini akan memicu Notifikasi developer real time SUBSCRIPTION_DEFERRED. Lihat Menunda penagihan untuk pelanggan di Tentang langganan untuk mempelajari cara menangani peristiwa ini.
Contoh:
Layanan streaming FitnessGoals ingin menjalankan promosi untuk mendorong olahraga rutin pada bulan Februari.
Mereka memutuskan untuk menawarkan layanan tambahan selama satu bulan kepada pelanggan yang berolahraga dengan FitnessGoals setidaknya 10 kali selama bulan Februari.
Mereka melacak hasil tantangan, dan pada 1 Maret, mereka memanggil metode subscriptionsv2.defer untuk setiap pembelian langganan aktif milik pengguna yang memenuhi tantangan pada bulan Februari.
Pengguna ini mendapatkan manfaat video latihan rutin selama sebulan penuh tanpa biaya tambahan, dan pengguna ini memberi tahu semua temannya tentang bagaimana FitnessGoals membantu mereka tetap sehat.
Melakukan pengembalian dana dan pencabutan
Ada banyak situasi ketika Anda mungkin ingin melakukan pengembalian dana atau mencabut akses ke langganan atau pembelian satu kali.
Mengembalikan dana penuh pesanan berdasarkan ID pesanan
Dengan orders.refund
API, Anda dapat melakukan pengembalian dana penuh untuk pesanan apa pun dalam waktu tiga tahun setelah pembelian.
Metode orders.refund menerima parameter pencabutan yang menunjukkan apakah akses harus dicabut selain memberikan pengembalian dana atau tidak.
Jika Anda membatalkan dengan panggilan pengembalian dana untuk pembelian langganan, langganan akan segera dihentikan dan memicuSUBSCRIPTION_REVOKED
Notifikasi Developer Real Time. Baca panduan pengelolaan siklus proses langganan, bagian Pencabutan, untuk mempelajari cara menangani peristiwa ini.
Contoh:
Untuk merayakan dimulainya piala dunia baru, aplikasi e-sport Football-Not-Soccer memutuskan untuk mengundi jersey virtual gratis bagi semua pengguna yang membeli perlengkapan tim baru dalam 24 jam pertama.
Football-Not-Soccer menggunakan
orders.refundAPI tanpa meneruskan parameter pencabutan untuk mengembalikan dana pembelian jersey kepada pemenang.
Mencabut dan mengembalikan dana langganan berdasarkan token pembelian
Untuk kasus penggunaan tertentu, Anda mungkin perlu mencabut akses ke langganan pengguna
dan memberikan pengembalian dana. Layanan Penagihan Play menawarkan metode pencabutan termasuk pengembalian dana penuh dan pengembalian dana prorata melalui subscriptionsv2.revoke API. Dengan endpoint ini, Anda dapat menentukan revocationContext
untuk menentukan cara penghitungan pengembalian dana.
Tindakan ini akan memicu Notifikasi Developer Real Time SUBSCRIPTION_REVOKED. Aplikasi Anda harus menangani pembatalan ini seperti yang dijelaskan dalam
Pencabutan.
Contoh:
- Membeli dengan token pembelian
1a2b3c4d5e6f7g8h9i0j - Aplikasi dengan nama paket
com.your.app - Maksud melakukan pengembalian dana prorata
Permintaan POST HTTP:
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke
Isi permintaan:
{
"revocationContext": {
"proratedRefund": {}
}
}
Pengembalian dana penuh
Jika Anda perlu menghentikan langganan dan mengembalikan dana penuh untuk
periode penagihan saat ini, lakukan pengembalian dana penuh. Gunakan fungsi
purchases.subscriptionsv2.revoke, dan tetapkan "fullRefund": {} sebagai jenis pengembalian dana.
Contoh:
Maria memiliki langganan 30 hari perpanjangan otomatis ke paket bulanan streaming SuperMovies. Maria mengalami beberapa masalah teknis yang mencegahnya mengakses konten. Dia menghubungi layanan pelanggan pada hari ke-3 siklus penagihannya dan menyatakan bahwa dia tidak pernah mendapatkan akses ke langganan.
Layanan pelanggan menemukan detail pembelian langganan Maria di sistem mereka dan memicu panggilan ke
purchases.subscriptionsv2.revokeuntuk meminta pengembalian dana penuh.Layanan pelanggan memberi tahu Maria bahwa dia akan mendapatkan pengembalian dana 100% dari harga langganannya dan dia tidak lagi berlangganan paket tersebut.
Pengembalian dana prorata
Jika Anda perlu menghentikan langganan dan mengembalikan dana sebagian untuk sisa waktu hak, lakukan pengembalian dana prorata. Gunakan fungsi
purchases.subscriptionsv2.revoke, dan tetapkan "proratedRefund": {} sebagai jenis pengembalian dana.
Contoh:
Maria memiliki langganan 30 hari perpanjangan otomatis ke paket bulanan streaming SuperMovies. Dia telah menggunakan layanan ini dengan senang hati selama beberapa waktu. Maria menghubungi layanan pelanggan pada hari ke-15 siklus penagihannya dan menyatakan bahwa dia akan pindah ke luar negeri dan tidak dapat menggunakan layanan tersebut lagi mulai keesokan harinya.
Layanan pelanggan menemukan detail pembelian langganan Maria di sistem mereka dan memicu panggilan ke
purchases.subscriptionsv2.revokeuntuk meminta pengembalian dana prorata.Layanan pelanggan memberi tahu Maria bahwa dia akan mendapatkan pengembalian dana sekitar 50% dari harga langganannya dan akses ke layanan tersebut akan segera dihentikan.