Paket Penagihan Komitmen Bulanan iOS
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Apple mendukung langganan yang ditagih bulanan tetapi mengikat pelanggan untuk masa 12 bulan. Jika StoreKit dan OS yang berjalan mendukung skema penagihan ini, @capgo/native-purchases menyediakan ketentuan harga, memungkinkan Anda memilih paket penagihan bulanan saat pembelian, dan mengembalikan metadata komitmen pada transaksi serta info perpanjangan.
Gunakan ini untuk penawaran langganan tahunan di mana pengguna lebih suka bayar bulanan, tapi Anda tetap ingin retensi dan prediktabilitas dari komitmen setahun.
Persyaratan
Bagian berjudul “Persyaratan”- Konfigurasikan paket billing bulanan dengan komitmen 12 bulan di App Store Connect atau di StoreKit Testing di Xcode.
- Build aplikasi iOS dengan Xcode SDK yang berisi StoreKit
pricingTermsdanbillingPlanType. - Jalankan di versi iOS yang mendukung paket billing komitmen StoreKit.
- Sediakan opsi billing standar untuk perangkat atau storefront yang tidak mengembalikan ketentuan harga komitmen.
Muat dan Tampilkan Ketentuan Harga
Bagian berjudul “Muat dan Tampilkan Syarat Harga”Panggil getProducts() seperti biasa. Untuk produk langganan iOS yang didukung, setiap produk dapat mencakup pricingTerms.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { products } = await NativePurchases.getProducts({ productIdentifiers: ['com.example.app.premium.yearly'], productType: PURCHASE_TYPE.SUBS,});
const premiumYearly = products.find( (product) => product.identifier === 'com.example.app.premium.yearly',);const monthlyCommitment = premiumYearly?.pricingTerms?.find( (term) => term.billingPlanType === 'monthly',);Render nilai dari store alih-alih harga hardcoded:
| Kolom | Gunakan untuk |
|---|---|
billingDisplayPrice | Jumlah penagihan berulang yang ditampilkan ke pengguna, misalnya biaya bulanan. |
billingPeriod | Interval penagihan untuk harga yang ditampilkan. |
commitmentInfo.priceString | Total harga komitmen yang diformat untuk storefront pengguna. |
commitmentInfo.period | Periode komitmen penuh. |
subscriptionOffers | Penawaran perkenalan atau promosi yang terikat pada paket harga. |
Contoh teks paywall:
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Beli Paket Monthly Commitment
Bagian berjudul “Beli Paket Monthly Commitment”Saat pengguna memilih paket monthly commitment, kirimkan billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});Gunakan billingPlanType: 'upFront' hanya jika Anda perlu memilih paket penagihan standar di muka secara eksplisit. Jika tidak, billingPlanType StoreKit akan menggunakan perilaku pembelian default untuk produk tersebut.
Baca Metadata Commitment
Bagian berjudul “Read Commitment Metadata”Transaksi mencakup billing plan dan progress commitment saat StoreKit menyediakannya:
if (transaction.billingPlanType === 'monthly') { console.log('Current billing period:', transaction.commitmentInfo?.billingPeriodNumber); console.log('Total billing periods:', transaction.commitmentInfo?.totalBillingPeriods); console.log('Commitment ends:', transaction.commitmentInfo?.expirationDate); console.log('Commitment total:', transaction.commitmentInfo?.price);}Info renewal dapat mencakup status commitment berikutnya:
const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, onlyCurrentEntitlements: true,});
for (const purchase of purchases) { const commitment = purchase.renewalInfo?.commitmentInfo; if (!commitment) continue;
console.log('Renews into another commitment:', commitment.willAutoRenew); console.log('Next billing plan:', commitment.renewalBillingPlanType); console.log('Next renewal date:', commitment.renewalDate);}Gunakan level teratas expirationDate dan isActive field tingkat atas untuk keputusan entitlement. Gunakan commitmentInfo.expirationDate untuk menjelaskan seluruh timeline commitment kepada customer.
Catatan Review App Store
Bagian berjudul “Catatan Review App Store”- Tampilkan harga tagihan berulang dan total harga komitmen sebelum pembelian.
- Cantumkan durasi komitmen secara eksplisit di dekat tombol beli.
- Gunakan
product.title,product.priceString,pricingTerms[].billingDisplayPrice, danpricingTerms[].commitmentInfo.priceStringdari StoreKit, bukan dari harga yang di-hardcode. - Sediakan aksi restore purchases dan kelola langganan di paywall atau layar akun.
Panduan Terkait
Bagian berjudul “Panduan Terkait”Lanjutkan dari iOS Monthly Commitment Billing Plans
Bagian berjudul “Lanjutkan dari iOS Monthly Commitment Billing Plans”Jika Anda menggunakan Paket Penagihan Komitmen Bulanan iOS untuk merencanakan pembayaran dan pembelian, hubungkan dengan Menggunakan @capgo/native-purchases untuk kemampuan native saat menggunakan @capgo/native-purchases, Harga Capgo untuk alur kerja produk di halaman Harga Capgo, Sistem pembayaran untuk detail implementasi di sistem pembayaran, @capgo/native-purchases untuk detail implementasi di @capgo/native-purchases, dan Panduan Memulai untuk detail implementasi di Getting Started.