Piani di fatturazione mensili di impegno per iOS
Copia un prompt di configurazione con le istruzioni di installazione e la guida markdown completa per questo plugin.
Apple supporta le sottoscrizioni che fatturano mensilmente impegnando il cliente a un termine più lungo di 12 mesi. Quando StoreKit e l'OS in esecuzione supportano questo piano di fatturazione, @capgo/native-purchases esporre i termini di prezzo, consentire di selezionare il piano di fatturazione mensile durante l'acquisto e restituire i metadati di impegno nelle transazioni e le informazioni di rinnovo.
Usa questo per offrire abbonamenti annuali dove gli utenti preferiscono pagamenti mensili, ma tu vuoi comunque la retention e la prevedibilità di un termine annuale impegnativo.
Requisiti
Sezione intitolata “Requisiti”- Configura il piano di fatturazione mensile con impegno di 12 mesi in App Store Connect o in StoreKit Testing in Xcode.
- Costruisci l'app iOS con un Xcode SDK che contiene StoreKit
pricingTermsebillingPlanType. - context: Pagina/Area: Sito web di marketing Capgo. Ruolo: Etichetta UI breve o elemento di navigazione. Visto in: pagina trust.astro. Chiave messaggio `e` (E).
- Esegui su una versione di iOS che supporta i piani di fatturazione di StoreKit con impegno.
Carica e visualizza i termini di prezzo
Sezione intitolata “Carica e visualizza i termini di prezzo”Chiamare getProducts() context 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',);Copia negli appunti
| Visualizza i valori forniti dalla store al posto dei prezzi hardcoded: | Campo |
|---|---|
billingDisplayPrice | Utilizzalo per |
billingPeriod | L'importo di fatturazione ricorrente visualizzato all'utente, ad esempio il carico mensile. |
commitmentInfo.priceString | Prezzo totale di impegno formattato per il negozio del cliente. |
commitmentInfo.period | Periodo di impegno completo. |
subscriptionOffers | Offerte introduttive o promozionali associate al termine di prezzo. |
Esempio di copia del paywall:
function commitmentLabel(term: NonNullable<typeof monthlyCommitment>) { const total = term.commitmentInfo?.priceString; return total ? `${term.billingDisplayPrice} billed monthly, ${total} total commitment` : term.billingDisplayPrice;}Acquista il Piano di Impegno Mensile
Sottosezione intitolata “Acquista il Piano di Impegno Mensile”Quando l'utente seleziona il piano di impegno mensile, passa billingPlanType: 'monthly'.
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'com.example.app.premium.yearly', productType: PURCHASE_TYPE.SUBS, billingPlanType: 'monthly', appAccountToken: userStoreUuid,});Usa billingPlanType: 'upFront' Usa solo quando hai bisogno di selezionare esplicitamente il piano di fatturazione standard a fronte. Se ometti billingPlanType, StoreKit utilizza il suo comportamento di acquisto predefinito per il prodotto.
Leggi i Metadati dell'Impegno
Sottosezione intitolata “Leggi i Metadati dell'Impegno”Gli acquisti includono il piano di fatturazione e lo stato di avanzamento dell'impegno quando StoreKit lo fornisce:
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);}Le informazioni di rinnovo possono includere lo stato dell'impegno successivo:
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);}Utilizza il livello superiore expirationDate e isActive Campi per le decisioni di abilitazione. Utilizza commitmentInfo.expirationDate per spiegare la timeline di impegno completo al cliente.
Note di revisione dell'App Store
Sottosezione intitolata “Note di revisione dell'App Store”- Mostra sia il prezzo di fatturazione ricorrente che il prezzo di impegno totale prima dell'acquisto.
- Fai esplicito il lunghezza dell'impegno vicino al pulsante di acquisto.
- Utilizza
product.title,product.priceString,pricingTerms[].billingDisplayPrice, epricingTerms[].commitmentInfo.priceStringda StoreKit al posto dei prezzi hardcoded. - Fornisci azioni di ripristino delle acquisizioni e gestione della sottoscrizione sul paywall o sulla schermata account.
Guide correlate
Sottosezione intitolata “Guide correlate”- Creare abbonamenti iOS
- Configura la prova di sandbox di iOS
- Il regolamento di revisione di App Store di iOS
Continua da Piani di fatturazione mensile di impegno di iOS
Sezione intitolata “Continua da Piani di fatturazione mensile di impegno di iOS”Se stai utilizzando Piani di fatturazione mensile di impegno di iOS per pianificare pagamenti e acquisti, collegalo con Utilizzando @capgo/native-purchases per la capacità nativa in Utilizzando @capgo/native-purchases Capgo Pricing per il flusso di lavoro del prodotto in Capgo Pricing Sistema di pagamento per il dettaglio di implementazione in Sistema di pagamento, @capgo/acquisti nativi per il dettaglio di implementazione in @capgo/acquisti nativi, e Iniziare per il dettaglio di implementazione in Iniziare.