Paket Billing Bulanan iOS
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Apple mendukung langganan yang membayar bulanan sementara mematok pelanggan untuk jangka waktu lebih lama 12 bulan. Ketika StoreKit dan OS yang berjalan mendukung rencana tagihan ini, @capgo/native-purchases mengekspos syarat harga, memungkinkan Anda memilih rencana tagihan bulanan selama pembelian, dan mengembalikan metadata komitmen pada transaksi dan informasi perpanjangan.
Gunakan ini untuk tawaran langganan tahunan di mana pengguna lebih suka pembayaran bulanan tetapi Anda masih ingin mempertahankan dan memprediksi retensi tahunan.
Persyaratan
Judul Bagian “Persyaratan”- Konfigurasi rencana tagihan bulanan dengan komitmen 12 bulan di App Store Connect atau di StoreKit Testing di Xcode.
- Buat aplikasi iOS dengan Xcode SDK yang mengandung StoreKit
pricingTermsdanbillingPlanType. - Jalankan pada versi iOS yang mendukung rencana pembayaran komitmen Toko.
- Tetapkan opsi pembayaran standar tersedia untuk perangkat atau toko yang tidak mengembalikan istilah harga komitmen.
Muat dan Tampilkan Istilah Harga
Judul bagian “Muat dan Tampilkan Istilah 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',);Tampilkan nilai yang disediakan toko daripada harga yang dipaksa:
| Bidang | Gunakan untuk |
|---|---|
billingDisplayPrice | Jumlah tagihan berulang yang ditampilkan kepada pengguna, misalnya biaya bulanan. |
billingPeriod | Kadensi tagihan yang ditampilkan untuk harga tagihan. |
commitmentInfo.priceString | Harga komitmen total yang diformat untuk toko penjualan pengguna. |
commitmentInfo.period | Masa komitmen penuh. |
subscriptionOffers | Tawaran promosi atau penawaran promosi yang terkait dengan istilah harga. |
Contoh teks pemblokiran bayar:
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Beli Rencana Komitmen Bulanan
Judul bagian “Beli Rencana Komitmen Bulanan”Ketika pengguna memilih rencana komitmen bulanan, lakukan 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 ketika Anda perlu secara eksplisit memilih rencana pembayaran standar sebelumnya. Jika Anda mengabaikan billingPlanType, StoreKit menggunakan perilaku pembelian defaultnya untuk produk.
Baca Metadata Komitmen
Judul bagian “Baca Metadata Komitmen”Transaksi termasuk rencana pembayaran dan kemajuan komitmen ketika 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);}Informasi perpanjangan dapat mencakup status komitmen 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 tingkat atas expirationDate dan isActive lapangan untuk keputusan hak akses. Gunakan commitmentInfo.expirationDate untuk menjelaskan timeline komitmen penuh kepada pelanggan.
Catatan Ulasan App Store
Bagian berjudul “Catatan Ulasan App Store”- Tampilkan baik harga tagihan berulang dan harga komitmen total sebelum pembelian.
- Buat panjang komitmen eksplisit dekat tombol pembelian.
- Gunakan
product.title,product.priceString,pricingTerms[].billingDisplayPrice, danpricingTerms[].commitmentInfo.priceStringdari StoreKit bukan harga yang diatur manual. - Berikan aksi memulihkan pembelian dan mengelola langganan di layar pembayaran atau layar akun.
Petunjuk Terkait
Judul bagian “Petunjuk Terkait”Teruskan dari Rencana Langganan Bulanan iOS
Judul bagian “Teruskan dari Rencana Langganan Bulanan iOS”Jika Anda menggunakan Rencana Langganan Bulanan iOS untuk merencanakan pembayaran dan pembelian, hubungkannya dengan Menggunakan @capgo/native-purchases untuk kemampuan asli dalam Menggunakan @capgo/native-purchases, Capgo Pricing untuk alur kerja produk dalam Capgo Pricing, Sistem Pembayaran untuk detail implementasi dalam Sistem Pembayaran, @capgo/native-purchases untuk detail implementasi dalam @capgo/native-purchases, dan Mulai Membuat untuk detail implementasi dalam Mulai Membuat.