Mengelola langganan dan pembelian satu kali

Anda mungkin perlu mengambil tindakan pengelolaan pada langganan atau pembelian satu kali sebagai bagian dari bisnis sehari-hari. Misalnya, layanan pelanggan Anda mungkin perlu melakukan pengembalian dana total 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

Pengguna dapat membatalkan langganan Google Play kapan saja menggunakan Play Store, meskipun Anda juga harus menyediakan opsi bagi pengguna untuk membatalkan langganan mereka di aplikasi dan situs Anda jika berlaku.

Cara termudah agar pengguna dapat membatalkan secara sukarela adalah dengan melakukan deep linking ke Play Store, tempat mereka dapat melihat dan mengelola langganan.

Anda mungkin juga perlu memicu pembatalan dari backend. Metode purchases.subscriptions.cancel memungkinkan Anda membatalkan pembelian langganan. Misalnya, Anda dapat menggunakan metode ini untuk menonaktifkan layanan lama. Membatalkan langganan tidak memberikan pengembalian dana, dan pengguna terus memiliki akses hingga akhir periode penagihan saat ini. Membatalkan langganan dengan metode ini akan mencegah pengguna memulihkan langganan di Play Store, tetapi pengguna tetap dapat mendaftar lagi melalui aplikasi Anda jika perlu.

Melakukan tindakan ini akan memicu Notifikasi developer real time SUBSCRIPTION_CANCELED. Tangani pembatalan ini seperti yang dijelaskan dalam Pembatalan.

Menangguhkan penagihan

Gunakan subscriptions.defer untuk memperpanjang periode hak langganan. Selama periode penundaan, pengguna tetap berlangganan konten Anda meskipun tidak dikenai biaya untuk waktu tambahan. Jika Anda menunda penagihan langganan, informasi status akan diperbarui sebagaimana mestinya dan Anda melihatnya tercermin di kolom expiryTime pada informasi status pembelian:

  • Untuk langganan berulang yang aktif, penagihan yang ditangguhkan akan diperpanjang hingga tanggal perpanjangan berikutnya.
  • Untuk paket prabayar, penagihan yang ditangguhkan akan memperpanjang waktu habis masa berlakunya.

Beberapa contoh tentang cara menggunakan penagihan yang ditangguhkan adalah:

  • Memberikan akses tanpa biaya kepada pengguna sebagai penawaran spesial, seperti memberikan satu minggu gratis kepada pelanggan lama yang telah mengisi survei masukan.
  • Berikan akses tanpa biaya kepada pelanggan sebagai tindakan layanan pelanggan, misalnya setelah pemadaman layanan dalam waktu lama yang mungkin memengaruhi kemampuan mereka untuk menggunakan layanan Anda.

Penagihan dapat ditunda selama minimal satu hari hingga satu tahun per panggilan API. Untuk menunda akhir hak lebih lama lagi, panggil API lagi sebelum tanggal habis masa berlaku yang baru tiba.

Melakukan tindakan ini akan memicu Notifikasi developer real time SUBSCRIPTION_DEFERRED. Baca artikel Menunda penagihan untuk pelanggan di bagian Tentang langganan untuk mempelajari cara menangani peristiwa ini.

Contoh:

  1. Layanan streaming Kebugaran ingin menjalankan promosi untuk mendorong latihan rutin di bulan Februari.

  2. Mereka memutuskan untuk menawarkan layanan tambahan satu bulan kepada pelanggan yang berlatih dengan Kebugaran minimal 10 kali selama bulan Februari.

  3. Mereka melacak hasil tantangan, dan pada 1 Maret, mereka memanggil subscriptions.defer API untuk setiap pembelian langganan aktif milik pengguna yang memenuhi tantangan pada bulan Februari.

  4. Pengguna ini mendapatkan manfaat dari video latihan rutin sebulan penuh tanpa biaya, dan pengguna memberi tahu semua teman mereka bagaimana Kebugaran membantu mereka tetap sehat!

Melakukan pengembalian dana dan pencabutan

Ada banyak situasi saat Anda mungkin ingin memberikan pengembalian dana atau mencabut akses ke langganan atau pembelian satu kali.

Pengembalian dana penuh pesanan berdasarkan ID pesanan

Dengan orders.refund API, Anda dapat melakukan pengembalian dana penuh untuk pesanan apa pun dalam waktu tiga tahun sejak pembelian. Metode orders.refund menerima parameter pencabutan yang menunjukkan apakah akses harus dicabut selain memberikan pengembalian dana.

Jika Anda melakukan pencabutan panggilan pengembalian dana untuk pembelian langganan, langganan akan langsung dihentikan dan memicuSUBSCRIPTION_REVOKED Notifikasi Developer Real Time. Baca bagian Pencabutan panduan pengelolaan siklus proses langganan untuk mempelajari cara menangani peristiwa ini.

Contoh:

  1. Untuk merayakan awal piala dunia baru, aplikasi e-sport Football-Not-football memutuskan untuk mengundurkan kaus virtual gratis bagi semua pengguna yang membeli kit tim baru dalam 24 jam pertama.

  2. Football-Not-Football menggunakan orders.refund API tanpa meneruskan parameter pencabutan untuk mengembalikan dana pembelian jersey kepada pemenang.

Mencabut dan mengembalikan dana langganan melalui token pembelian

Untuk kasus penggunaan tertentu, Anda mungkin perlu mencabut akses ke langganan pengguna dan mengembalikan dana mereka. Layanan Penagihan Play menawarkan pengembalian dana sebagian termasuk pengembalian dana prorata yang dapat Anda lakukan menggunakan subscriptionsv2.revoke API. Dengan endpoint ini, Anda dapat menentukan revocationContext untuk menentukan cara penghitungan pengembalian dana.

Melakukan tindakan ini akan memicu Notifikasi Developer Real Time SUBSCRIPTION_REVOKED. Aplikasi harus menangani pembatalan ini seperti yang dijelaskan dalam Pencabutan.

Contoh:

  • Beli dengan token pembelian 1a2b3c4d5e6f7g8h9i0j
  • Aplikasi dengan nama paket com.your.app
  • Tujuan 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 prorata

Jika Anda perlu menghentikan langganan dan mengembalikan sebagian dana dari waktu hak yang tersisa, lakukan pengembalian dana prorata. Gunakan fungsi purchases.subscriptionsv2.revoke, dan tetapkan "proratedRefund": {} sebagai jenis pengembalian dana.

Contoh:

  1. Maria memiliki langganan 30 hari yang diperpanjang otomatis untuk paket bulanan streaming SuperMovies. Ia telah cukup lama menggunakan layanan tersebut. Maria menghubungi layanan pelanggan pada hari ke-15 siklus penagihannya dan menyatakan bahwa dia pindah ke luar negeri dan tidak dapat menggunakan layanan ini lagi mulai hari berikutnya.

  2. Layanan pelanggan menemukan detail pembelian langganan Maria di sistemnya dan memicu panggilan ke purchases.subscriptionsv2.revoke yang meminta pengembalian dana prorata.

  3. Layanan pelanggan memberi tahu Maria bahwa ia akan mendapatkan pengembalian dana sekitar 50% dari harga langganannya dan akses ke layanan tersebut segera dihentikan.