Tingkat berlangganan yang dapat diperpanjang secara otomatis di aplikasi iOS

gambar


Hai, ini Renat dari Apphud . Dalam artikel ini, kami akan memberi tahu Anda tingkat langganan yang dapat diperbarui secara otomatis, cara mengonfigurasinya dengan benar dan dalam hal apa pengguna dikembalikan uang untuk periode berbayar yang tidak digunakan.


Apa tingkat berlangganan?


Ini adalah penunjukan kelas berlangganan, tergantung pada tingkat layanan yang ditawarkannya. Berlangganan kelas pertama berarti tingkat layanan tertinggi, kelas kedua - lebih rendah, dan seterusnya. Bahkan, jarang di aplikasi mana Anda dapat menemukan dua tingkat langganan, belum lagi tiga atau lebih.



Dua tingkat berlangganan di aplikasi surat kabar The New York Times.


Bagaimana cara mengatur level berlangganan?


Untuk mengonfigurasi level langganan Anda, buka App Store Connect , pilih aplikasi Anda dan pergi ke tab Fitur . Di bagian pembelian dalam aplikasi, gerakkan langganan Anda satu tingkat ke atas atau ke bawah. Untuk melakukan ini, pilih langganan yang diinginkan dengan menekan dan menahan ikon seret dan lepas dan memindahkan langganan ke tingkat yang diinginkan.



Seret dan lepaskan langganan ke tingkat yang lebih tinggi.


Berlangganan nomor 1 harus menawarkan tingkat layanan tertinggi, misalnya, berlangganan semua kategori majalah. Tidak ada ketergantungan antara durasi berlangganan dan levelnya. Jadi, langganan tertinggi bisa tahunan, dan langganan pada tingkat yang lebih rendah dari sebulan.


Ubah langganan


Pengguna dapat mengubah langganan di aplikasi App Store setelah pendaftarannya. Ini dapat meningkatkan (meningkatkan), menurunkan (menurunkan) tingkat atau mengubah langganan dalam tingkat yang sama (lintas kelas).


Peningkatan tingkat langganan (peningkatan)


Jika langganan pengguna saat ini aktif, maka ia akan segera beralih ke tarif baru, dan bagian yang tidak digunakan dari periode berbayar akan dikembalikan ke kartu.



Pemberitahuan bahwa sebagian dana akan dikembalikan saat meningkatkan langganan.


Di akhir artikel, kita akan melihat bagaimana cara menangkap kenaikan tingkat berlangganan dan menghitung jumlah pengembalian.


Downgrade langganan (downgrade)


Dengan menurunkan level, pengguna beralih ke yang baru di akhir periode pembayaran saat ini. Dana tidak dapat dikembalikan, dan biaya langganan baru didebet saat aktivasi.


Perubahan langganan pada level yang sama (lintas kelas)


Ini adalah situasi yang umum, dibagi menjadi dua jenis: perubahan langganan satu durasi dan berbeda. Saat mengubah langganan dengan durasi berbeda, hal yang sama akan terjadi dengan penurunan peringkat: langganan akan diterapkan pada akhir periode pembayaran saat ini.


Jika durasinya cocok, langganan saat ini akan dibatalkan dan yang baru akan segera dimulai. Uang akan didebit untuk langganan baru, dan bagian langganan lama yang tidak digunakan akan dikembalikan kepada pengguna.


Bagaimana cara mengetahui tentang mengubah langganan di server?


Anda dapat memvalidasi App Store memeriksa atau mendengarkan pemberitahuan server Apple.


Saat memeriksa setiap transaksi baru, Anda perlu melihat apakah product_id telah berubah. Mengubah product_id berarti pengguna telah mengubah langganan mereka di pengaturan App Store.


Selain itu, Anda dapat melihat nilai auto_renew_product_id di pending_renewal_info . Ini akan membantu Anda mempelajari tentang perubahan ke product_id sebelum berlangganan baru berlaku.


Jika Anda memiliki pemberitahuan server yang dikonfigurasi, dengarkan pemberitahuan DID_CHANGE_RENEWAL_PREF yang dipanggil saat suatu produk diubah . Anda dapat membatasi diri pada pemberitahuan ini dan mendapatkan product_id baru dari parameter permintaan, atau Anda dapat memeriksa kembali tanda terima App Store. Dalam kasus yang terakhir, pemberitahuan server Apple hanya akan berfungsi sebagai pemicu untuk pemeriksaan tidak terjadwal.


Bagaimana cara menghitung jumlah pengembalian untuk peningkatan?


Untuk memahami apakah ada peningkatan, Anda perlu memeriksa nilai bidang is_upgraded . Nilai true berarti bahwa transaksi berikutnya sudah ada dalam langganan baru.


Perhatikan bahwa is_upgraded akan true bahkan ketika mengubah langganan dengan durasi yang sama dalam level yang sama. Yaitu, is_upgraded = true tidak berarti peningkatan level, tetapi fakta bahwa perubahan berlangganan dilakukan dengan pengembalian uang.


Selain bidang is_upgraded , bidang cancellation_date akan muncul dalam transaksi ini, yang menunjukkan waktu pembatalan. Itu sama atau hampir bertepatan dengan tanggal mulai dari transaksi berikutnya.


Ternyata bidang cancellation_date muncul tidak hanya ketika berlangganan dikembalikan , tetapi juga ketika meningkatkan.


Perhatikan bahwa saat memutakhirkan langganan Sandbox, bidang cancellation_date tidak ada . Oleh karena itu, saat menguji di Sandbox, Anda harus menggunakan purchase_date transaksi berikutnya alih-alih cancellation_date . Baca lebih lanjut tentang tanggal pembatalan dalam dokumentasi Apple .


Untuk menghitung jumlah yang harus dikembalikan kepada pengguna, Anda perlu membagi periode yang tidak digunakan dengan periode penuh dari langganan sebelumnya dan dikalikan dengan biayanya:


 # upgrade_date is `cancellation_date` in prodiction or `purchase_date` of new transaction in sandbox # to_f converts date to float timestamp value prorate_amount = price * (upgrade_date.to_f - cancellation_date.to_f) / (expires_date.to_f - purchase_date.to_f) 

Bagaimana ini diterapkan di Apphud?


Apphud secara otomatis melacak perubahan dalam langganan dan menghitung kembalinya bagian yang tidak digunakan.



Contoh perubahan langganan pada tingkat yang sama dengan pengembalian sebagian dana di Apphud.


Pengembang iOS tidak diharuskan menangani sendiri situasi ini. Anda hanya perlu mengintegrasikan SDK, sisanya akan dilakukan oleh Apphud.


Kesimpulan


Ternyata hanya memperbarui nilai product_id tidak cukup: Anda juga perlu mempertimbangkan pengembalian dana untuk peningkatan. Bekerja dengan langganan membutuhkan penanganan banyak situasi batas. Kami membuat Apphud - layanan yang sangat menyederhanakan pekerjaan dengan langganan. Anda dapat mulai menggunakannya secara gratis. Registrasi - di tautan ini .

Source: https://habr.com/ru/post/id475758/


All Articles