Rencana Pembayaran Bulanan untuk iOS
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Apple mendukung langganan yang membayar setiap bulan sementara mempertahankan pelanggan untuk jangka waktu lebih lama 12 bulan. Ketika StoreKit dan OS yang berjalan mendukung rencana pembayaran ini, @capgo/native-purchases mengekspos syarat harga, memungkinkan Anda memilih rencana pembayaran 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 komitmen tahunan.
Persyaratan
Bagian berjudul “Persyaratan”- Konfigurasi rencana pembayaran 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 StoreKit.
- Tetapkan opsi pembayaran standar untuk perangkat atau toko yang tidak mengembalikan syarat harga komitmen.
Tentang Harga Penggunaan
Judul bagian “Tentang Harga Penggunaan”Panggil getProducts() seperti biasa. Untuk produk iOS langganan 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 alih-alih harga yang dikodekan secara keras:
| Bidang | Gunakan untuk |
|---|---|
billingDisplayPrice | Jumlah pembayaran berulang yang ditampilkan kepada pengguna, misalnya biaya bulanan. |
billingPeriod | Kadensi pembayaran yang ditampilkan untuk harga pembayaran yang ditampilkan. |
commitmentInfo.priceString | Harga total komitmen yang diformat untuk toko penjualan pengguna. |
commitmentInfo.period | Masa komitmen penuh. |
subscriptionOffers | Tawaran promosi atau penawaran spesial 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
Ketika pengguna memilih rencana komitmen bulanan, kirimSalin ke clipboard billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});Hanya gunakan ketika Anda perlu memilih secara eksplisit rencana pembayaran standar sebelumnya. Jika Anda melewatkan billingPlanType: 'upFront' StoreKit menggunakan perilaku pembelian defaultnya untuk produk tersebut. billingPlanTypeGunakan hanya ketika Anda perlu memilih secara eksplisit rencana pembayaran standar sebelumnya. Jika Anda melewatkan
Baca Metadata Komitmen
Judul bagian “Baca Metadata Komitmen”Transaksi mencakup 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);}Info 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 bidang untuk keputusan hak istimewa. Gunakan commitmentInfo.expirationDate untuk menjelaskan timeline komitmen penuh kepada pelanggan.
Catatan Ulasan App Store
Bab 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 dikodekan. - Berikan aksi pembelian ulang dan mengelola langganan pada layar pembayaran atau layar akun.
Referensi Lengkap
Bab berjudul “Referensi Lengkap”Lanjutkan dari Rencana Pembayaran Bulanan iOS
Judul Bagian “Lanjutkan dari Rencana Pembayaran Bulanan iOS”Jika Anda menggunakan Rencana Pembayaran 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 di Sistem Pembayaran, @capgo/native-purchases untuk detail implementasi di @capgo/native-purchases, dan Getting Started untuk detail implementasi di Getting Started.