Mengelola langganan dan pembelian satu kali

Anda mungkin perlu mengambil tindakan pengelolaan atas 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 harus mencabut hak dalam kasus tertentu. Anda dapat mengelola pesanan dari Konsol Play, atau jika Anda 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, tetapi Anda juga harus memberikan opsi bagi pengguna untuk membatalkan langganan di aplikasi dan di situs Anda, jika berlaku.

Cara termudah untuk memungkinkan pengguna membatalkan secara sukarela adalah dengan deep link ke Play Store, tempat mereka dapat melihat dan mengelola langganan mereka.

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

Melakukan tindakan ini akan memicu Developer real time SUBSCRIPTION_CANCELED notifikasi. Tangani pembatalan ini seperti yang dijelaskan di Pembatalan.

Menangguhkan penagihan

Gunakan subscriptions.defer guna memperpanjang periode hak langganan. Selama masa penundaan, pengguna tetap berlangganan konten Anda meskipun tidak dikenakan biaya baik. Saat Anda menunda penagihan langganan, informasi statusnya adalah diperbarui sebagaimana mestinya dan Anda melihatnya tercermin di kolom expiryTime pada informasi status pembelian:

  • Untuk langganan berulang aktif, penagihan yang ditangguhkan akan memperpanjang durasi langganan tanggal perpanjangan.
  • Untuk paket prabayar, penagihan yang ditangguhkan akan memperpanjang waktu habis masa berlaku.

Beberapa contoh cara menggunakan penagihan yang ditangguhkan adalah:

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

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

Melakukan tindakan ini akan memicu Developer real time SUBSCRIPTION_DEFERRED notifikasi. Lihat Menunda penagihan untuk pelanggan di artikel Tentang langganan untuk mempelajari cara menangani peristiwa ini.

Contoh:

  1. Layanan streaming FitnessGoals ingin menjalankan promosi ke mendorong mereka untuk melakukan olahraga secara teratur di bulan Februari.

  2. Mereka memutuskan untuk menawarkan layanan tambahan selama satu bulan kepada setiap pelanggan yang melakukan latihan dengan Tujuan Kebugaran minimal 10 kali dalam sebulan 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 latihan rutin selama sebulan penuh video tanpa biaya, dan pengguna memberi tahu semua teman mereka cara membantu mereka tetap sehat!

Melakukan pengembalian dana dan pencabutan

Ada banyak situasi di mana Anda mungkin ingin mengembalikan dana atau mencabutnya 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.

Jika Anda melakukan pencabutan dengan panggilan pengembalian dana untuk pembelian langganan, langganan akan langsung dihentikan dan hal tersebut memicu SUBSCRIPTION_REVOKED Notifikasi Developer Real Time. Membaca pengelolaan siklus proses langganan panduan bagian Pencabutan untuk mempelajari cara menangani peristiwa ini.

Contoh:

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

  2. Football-Not-Foot menggunakan orders.refund tanpa meneruskan parameter pencabutan untuk mengembalikan dana pembelian kaus ke pemenang penghargaan.

Mencabut dan mengembalikan dana langganan dengan 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 dan pengembalian dana prorata melalui subscriptionsv2.revoke Compute Engine API. Dengan endpoint ini, Anda dapat menentukan revocationContext untuk menentukan cara penghitungan pengembalian dana.

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

Contoh:

  • Beli dengan token pembelian 1a2b3c4d5e6f7g8h9i0j
  • Aplikasi dengan nama paket com.your.app
  • Berniat 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 periode penagihan saat ini, lakukan pengembalian dana penuh. Gunakan purchases.subscriptionsv2.revoke fungsi, dan tetapkan "fullRefund": {} sebagai jenis pengembalian dana.

Contoh:

  1. Maria memiliki langganan 30 hari yang diperpanjang otomatis untuk streaming SuperMovies bulanan Anda. Maria mengalami beberapa masalah teknis yang mencegahnya untuk mengakses konten. Ia menghubungi layanan pelanggan pada hari ke-3 penagihannya siklus yang menyatakan bahwa ia tidak pernah mendapatkan akses ke langganan.

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

  3. Layanan pelanggan memberi tahu Maria bahwa ia harus mendapatkan 100% dari bisnisnya harga langganan dikembalikan dan dia tidak berlangganan paket itu lagi.

Pengembalian dana prorata

Jika Anda perlu menghentikan langganan dan mengembalikan sebagian dana sisanya hak, keluarkan pengembalian dana prorata. Gunakan purchases.subscriptionsv2.revoke fungsi, dan tetapkan "proratedRefund": {} sebagai jenis pengembalian dana.

Contoh:

  1. Maria memiliki langganan 30 hari yang diperpanjang otomatis untuk streaming SuperMovies bulanan Anda. Dia merasa senang menggunakan layanan ini selama beberapa waktu. Maria menghubungi layanan pelanggan pada hari ke-15 dalam siklus penagihannya, yang 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 dan memicu panggilan ke purchases.subscriptionsv2.revoke yang meminta pengembalian dana prorata.

  3. Layanan pelanggan memberi tahu Maria bahwa dia seharusnya mendapatkan sekitar 50% harga langganan dikembalikan dan akses ke layanan dihentikan segera.