Membuat Kelompok Langganan iOS
Copikan prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Kelompok langganan sangat penting untuk mengorganisir dan mengelola beberapa tingkat langganan di aplikasi iOS Anda. Memahami cara kerjanya sangat penting untuk menerapkan fungsi upgrade, downgrade, dan crossgrade.
Apa itu Kelompok Langganan?
Bagian berjudul “Apa itu Kelompok Langganan?”Apa itu kelompok langganan? Kelompok langganan adalah kumpulan langganan terkait yang pengguna dapat memilih. Pengguna hanya dapat berlangganan satu langganan dalam satu kelompok pada satu waktu. Ketika mereka berganti langganan, Apple akan mengelola transisi secara otomatis.
Mengapa Kelompok Langganan Penting?
Judul Bagian “Mengapa Kelompok Langganan Penting”Kelompok langganan memungkinkan:
- Pengaturan harga berjenjang: Tawarkan rencana dasar, premium, dan ultimate
- Pilihan durasi yang berbeda: Pilihan bulanan, tahunan, dan seumur hidup
- Logika peningkatan/penurunan: Pengelolaan otomatis perubahan langganan
- Pengelolaan yang lebih sederhana: Kumpulkan langganan terkait bersama
Level Pembayaran
Judul Bagian: Level PembayaranDalam sebuah kelompok, setiap langganan harus dinilai dari nilai tertinggi (tingkat 1) hingga nilai terendah. Peringkat ini menentukan bagaimana perubahan langganan diklasifikasikan:

Contoh Tingkat
Judul Bagian: Contoh TingkatTingkat 1 (Nilai Tertinggi)
- Paket Tahunan Premium ($99,99/tahun)
- Paket Bulanan Ultimate ($19,99/bulan)
Tingkat 2 (Nilai Menengah)
- Biaya Tahunan Standar ($49,99/tahun)
- Biaya Bulanan Premium ($9,99/bulan)
Tingkat 3 (Nilai Terendah)
- Biaya Tahunan Dasar ($29,99/tahun)
- Biaya Bulanan Standar ($4,99/bulan)
Jenis Perubahan Langganan
Judul Bagian “Jenis Perubahan Langganan”Apple secara otomatis mengelola tiga jenis perubahan langganan berdasarkan ranking tingkat:
1. Perbarui
Judul Bagian “1. Upgrade”Mengalihkan ke higher-tier langganan (misalnya, level 2 → level 1).
Tindakan:
- Berlaku segera Pengguna menerima
- pengembalian sebagian uang untuk waktu yang tersisa Langganan baru dimulai segera
- Langganan baru dimulai segera
Example:
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time3. Downgrade
Judul Bagian: “2. Menurunkan Level”Berpindah ke lower-tier langganan (misalnya level 1 → level 2).
Behavior:
- tanggal ulang berikutnya tanggal pembayaran ulang berikut
- Langganan baru akan dimulai secara otomatis setelah habis masa berlakunya
- Langganan baru akan dimulai secara otomatis setelah kedaluwarsa
Example:
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches3. Ulangan Harga
Bagian berjudul “3. Crossgrade”Mengganti ke langganan lainnya di tingkat yang sama.
Perilaku tergantung pada durasi:
Durasi Berbeda → Berperilaku seperti penurunan
- Berlaku pada tanggal jadwal ulang berikutnya
- Contoh: Premium Bulanan (Level 1) → Premium Tahunan (Level 1)
Durasi Sama → Berperilaku seperti peningkatan
- Takes effect immediately
- Contoh: Premium Bulanan (Level 1) → Ultimate Bulanan (Level 1)
Membuat Kelompok Langganan
Judul Bagian “Membuat Kelompok Langganan”-
Navigasikan ke Langganan
Pilih aplikasi Anda di App Store Connect, lalu buka halaman Monetize > Langganan.
-
Buat Kelompok
Klik + berikutnya di samping “Kelompok Langganan” untuk membuat kelompok baru.
-
Berikan Nama Kelompok
Pilih nama yang deskriptif yang merefleksikan langganan yang terkandung:
- Akses Premium
- Rencana Penyimpanan Cloud
- “Pro Features”
-
Tambahkan Langganan
Setelah membuat kelompok, tambahkan langganan individu ke dalamnya. Setiap langganan akan memiliki peringkat level.
-
Set Peringkat Level
Tata langganan dari nilai tertinggi (1) ke nilai terendah. Pertimbangkan:
- Rencana tahunan biasanya lebih tinggi daripada rencana bulanan
- Higher-priced tiers rank above lower-priced ones
- Tingkat tertinggi adalah tingkat ultimate/premium
Menggunakan di Aplikasi Anda
Bagian berjudul “Menggunakan di Aplikasi Anda”Pengguna plugin native-purchases secara otomatis mengelola logika kelompok langganan:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch all subscriptions in a groupconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_annual', 'ultimate_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Display current subscription using StoreKit transactionsconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const activeSubs = purchases.filter((purchase) => purchase.isActive);
// Detect pending downgrade/cancellation (StoreKit sets willCancel === true)const pendingChange = purchases.find((purchase) => purchase.willCancel === true);if (pendingChange) { console.log('Subscription will stop auto-renewing on', pendingChange.expirationDate);}
// Purchase (StoreKit handles upgrades/downgrades automatically)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_annual', productType: PURCHASE_TYPE.SUBS,});
// Listen for StoreKit updates (fires on upgrades/downgrades/refunds)NativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription updated:', transaction);});Mengatasi Perubahan Langganan
Judul Bagian “Mengatasi Perubahan Langganan”Mendeteksi Tipe Perubahan
Judul Bagian “Mendeteksi Tipe Perubahan”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Get current subscription infoconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const currentSubscription = purchases.find( (purchase) => purchase.subscriptionState === 'subscribed',);
if (currentSubscription) { // StoreKit reports if user cancelled auto-renew if (currentSubscription.willCancel) { console.log( `User cancelled. Access remains until ${currentSubscription.expirationDate}`, ); }
if (currentSubscription.isUpgraded) { console.log('User recently upgraded to this plan.'); }}
// Listen for automatic upgrades/downgradesNativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription changed!', transaction); if (transaction.subscriptionState === 'revoked') { revokeAccess(); } else if (transaction.isActive) { unlockPremiumFeatures(); }});Komunikasi Pengguna
Judul Bagian “Komunikasi Pengguna”Selalu komunikasikan perilaku perubahan dengan jelas:
Untuk Pengupgrade:
“Anda akan mendapatkan akses langsung ke fitur Premium. Kami akan menghitung ulang langganan Anda.”
Untuk Penurunan Level:
“Anda akan tetap memiliki akses Premium hingga [tanggal perpanjangan], kemudian beralih ke Standard.”
Untuk Perubahan Level:
“Rencana Anda akan berubah ke pembayaran Tahunan pada perpanjangan berikutnya pada [tanggal].”
Pengawasan Server
Judul Bagian “Pengawasan Server”Gunakan Notifikasi Server App Store Apple v2 atau backend validasi bukti pembelian Anda sendiri untuk mencerminkan perubahan StoreKit di database Anda. Pasang notifikasi server dengan integrasi penerimaan pembayaran. transactionUpdated listener sehingga klien dan backend tetap sinkron.
Judul Bagian “Praktik Terbaik”
Section titled “Best Practices”Judul Bagian “Pengelompokan Grup”
Section titled “Group Organization”- Simpan langganan terkait di dalam kelompok yang sama
- Tidak campur aduk fitur yang tidak terkait (misalnya penyimpanan dan penghapusan iklan)
- Buat kelompok yang terpisah untuk setiap set fitur
Strategi Peringkat Level
Judul Bagian ‘Strategi Peringkat Level’- Rencana tahunan → Lebih tinggi daripada bulanan (untuk tingkat yang sama)
- Tingkat harga yang lebih tinggi → Lebih tinggi
- Perhatikan nilai, bukan hanya harga
Pengalaman Pengguna
Judul Bagian ‘Pengalaman Pengguna’- Tampilkan langganan saat ini secara jelas
- Tampilkan semua pilihan yang tersedia di dalam kelompok
- Menunjukkan perubahan mana yang segera vs. pada masa perbaharuan
- Mudahkan perubahan antar paket
Pengujian
Bab berjudul “Pengujian”- Uji semua skenario peningkatan
- Uji semua skenario penurunan
- Verifikasi perilaku crossgrade
- Periksa kejadian webhook
Skenario Umum
Bab berjudul “Skenario Umum”Skenario 1: Tiga-Tingkat Paket Bulanan
Bab berjudul “Skenario 1: Tiga-Tingkat Paket Bulanan”Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- Basic → Premium: Naikkan (langsung)
- Premium → Ultimate: Naikkan (langsung)
- Ultimate → Premium: Turunkan (pada perpanjangan)
- Basic → Ultimate: Naikkan (langsung)
Skenario 2: Rencana Durasi Campuran
Bulan → Tahunan: Naikkan Kelas (pada perpanjangan)Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- Tahunan → Bulanan: Turunkan (pada perpanjangan)
- Skenario 3: Multi-Tingkat Multi-Durasi
Skenario 3: Multi-Tier Multi-Duration
Tahunan → Bulanan: Turunkan (pada perpanjangan)Level 1: Ultimate Annual ($199/year)Level 2: Ultimate Monthly ($19.99/month)Level 3: Premium Annual ($99/year)Level 4: Premium Monthly ($9.99/month)Level 5: Basic Annual ($49/year)Level 6: Basic Monthly ($4.99/month)Pengaturan ini memberikan fleksibilitas maksimum sambil tetap menjaga logika upgrade/turun downgrade yang jelas.
Troubleshooting
Bagian Berjudul “Pengaturan Masalah”Langganan tidak muncul di grup:
- Judul Bagian Tertentu ‘Pengaturan’
- Periksa statusnya minimal sudah "Siap Untuk Dikirim"
- Pastikan sudah terdaftar di grup yang benar
Tindakan upgrade/turun downgrade yang salah:
- Pastikan ID produk sudah benar
- Pengaturan upgrade/turun downgrade yang salah:
- Periksa ranking level (1 = level tertinggi)
Produk dari berbagai kelompok:
- Pengguna dapat berlangganan ke beberapa kelompok secara bersamaan
- Ini sengaja - jaga produk terkait di kelompok yang sama
getActiveProducts menampilkan langganan beberapa kali:
- Cek apakah langganan berada di kelompok yang berbeda
- Pastikan pengguna tidak berlangganan melalui Family Sharing
- Review status langganan di App Store Connect
Sumber Daya Tambahan
Bab berjudul “Sumber Daya Tambahan”Untuk informasi lebih lanjut, lihat documentasi resmi Apple tentang kelompok langganan.
Teruskan dari Membuat Kelompok Langganan iOS
Judul Bagian: “Teruskan dari Membuat Kelompok Pembelian iOS””Jika Anda menggunakan Membuat Kelompok Pembelian iOS untuk merencanakan persetujuan toko dan distribusi, hubungkannya dengan Menggunakan @capgo/native-purchases untuk kemampuan native di Menggunakan @capgo/native-purchases, @capgo/capacitor-ulasan-dalam-aplikasi untuk detail implementasi di @capgo/capacitor-ulasan-dalam-aplikasi, Menggunakan @capgo/capacitor-ulasan-dalam-aplikasi untuk kemampuan native di Menggunakan @capgo/capacitor-ulasan-dalam-aplikasi, @capgo/capacitor-pasar-native untuk detail implementasi di @capgo/capacitor-pasar-native, dan Menggunakan @capgo/capacitor-native-market untuk kemampuan native di Menggunakan @capgo/capacitor-native-market.