Salta al contenuto principale
@capgo/native-purchases E-commerce Open source

Acquisti Native Plugin Capacitor

Implementa acquisti in-app nativi, abbonamenti e piani di fatturazione a impegno StoreKit su iOS con un semplice API

Installa

bun add @capgo/native-purchases bunx cap sync
npm, pnpm o yarn
  • npm install @capgo/native-purchases
  • pnpm add @capgo/native-purchases
  • yarn add @capgo/native-purchases

Guida

Come usare Native Purchases in Capacitor

Utilizzo di @capgo/native-purchases

Abbonamenti in-app, in modo semplice.

Installa

bun add @capgo/native-purchases
bunx cap sync

Cosa espone questo plugin

  • restorePurchases - Ripristina gli acquisti precedenti dell'utente e collega i suoi appUserIDs a quelli di qualsiasi utente che li utilizzi.
  • getAppTransaction - Recupera le informazioni sulla transazione dell'app, che indicano quando l'utente ha scaricato o acquistato originariamente l'app.
  • isEntitledToOldBusinessModel - Confronta la versione originale dell'app (dalla transazione) con una versione target per determinare se l'utente ha diritto a funzionalità di un precedente modello di business.
  • getProducts - Carica i metadati dei prodotti dello store, inclusi i termini di prezzo per gli abbonamenti iOS supportati.
  • purchaseProduct - Avvia il processo di acquisto per il prodotto e il piano di fatturazione selezionati.

Esempio d'uso

restorePurchases

Ripristina gli acquisti precedenti dell'utente e collega i suoi appUserIDs a quelli di qualsiasi utente che li utilizzi.

import { NativePurchases } from '@capgo/native-purchases';

await NativePurchases.restorePurchases();

getAppTransaction

Recupera le informazioni sulla transazione dell'app, che forniscono dettagli su quando l'utente ha originariamente scaricato o acquistato l'app.

import { NativePurchases } from '@capgo/native-purchases';

const { appTransaction } = await NativePurchases.getAppTransaction();

// Check if user downloaded before version 2.0.0 (when subscription was added)
if (compareVersions(appTransaction.originalAppVersion, '2.0.0') < 0) {
  // User gets free access - they downloaded before subscriptions
  grantFreeAccess();
}

isEntitledToOldBusinessModel

Confronta la versione originale dell'app nella transazione con una versione target per verificare se l'utente ha diritto a funzionalità di un precedente modello di business.

import { NativePurchases } from '@capgo/native-purchases';

// Check if user downloaded before version 2.0.0/build 42 (when subscription was added)
const result = await NativePurchases.isEntitledToOldBusinessModel({
  targetVersion: '2.0.0',
  targetBuildNumber: '42'
});

if (result.isOlderVersion) {
  console.log(`User downloaded v${result.originalAppVersion}, granting free access`);
  grantFreeAccess();
}

purchaseProduct

Avvia il processo di acquisto per il prodotto specificato. Per gli abbonamenti Android, passa l'ID del piano base di Google Play come planIdentifier. Per gli abbonamenti iOS supportati che offrono fatturazione mensile con impegno di 12 mesi, passa billingPlanType: 'monthly'.

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';

await NativePurchases.purchaseProduct({
  productIdentifier: 'com.example.premium.monthly',
  planIdentifier: 'monthly-plan',
  productType: PURCHASE_TYPE.SUBS,
});

Abbonamenti iOS con impegno mensile

Sulle versioni iOS supportate, StoreKit può esporre un piano di fatturazione mensile con impegno di 12 mesi tramite pricingTerms. Mostra questi termini sul paywall prima dell'acquisto:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';

const { products } = await NativePurchases.getProducts({
  productIdentifiers: ['com.example.premium.yearly'],
  productType: PURCHASE_TYPE.SUBS,
});

const yearlyProduct = products.find(
  (product) => product.identifier === 'com.example.premium.yearly',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
  (term) => term.billingPlanType === 'monthly',
);

if (yearlyProduct && monthlyCommitment) {
  console.log('Monthly price:', monthlyCommitment.billingDisplayPrice);
  console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);

  const transaction = await NativePurchases.purchaseProduct({
    productIdentifier: yearlyProduct.identifier,
    productType: PURCHASE_TYPE.SUBS,
    billingPlanType: 'monthly',
  });

  console.log('Billing plan:', transaction.billingPlanType);
  console.log('Commitment ends:', transaction.commitmentInfo?.expirationDate);
}

Riferimento completo

Continua con l'uso di @capgo/native-purchases

Se stai usando Utilizzo di @capgo/native-purchases per pianificare pagamenti e acquisti, collegalo a @capgo/native-purchases per i dettagli di implementazione in @capgo/native-purchases, Per iniziare per i dettagli di implementazione nella guida introduttiva, Prezzi Capgo per il workflow del prodotto nella pagina Prezzi di Capgo, Sistema di pagamento per i dettagli di implementazione del sistema di pagamento, e Playbook dei ricavi per i dettagli sull'implementazione nel Revenue Playbook.

FAQ

FAQ sul plugin Native Purchases

Come installo il plugin Native Purchases in un'app Capacitor?

Esegui "bun add @capgo/native-purchases" (o "npm install @capgo/native-purchases"), poi esegui "bunx cap sync" in modo che i progetti iOS e Android carichino le code native. Importalo da "@capgo/native-purchases" nel code della tua app.

@capgo/native-purchases funziona con React, Vue e Angular?

Sì. Native Purchases è un pacchetto Capacitor, quindi funziona con qualsiasi framework web che giri all'interno di Capacitor, inclusi Ionic, React, Vue, Angular, Svelte e JavaScript puro.

Quale versione di Capacitor supporta @capgo/native-purchases?

I plugin Capgo seguono la major version di Capacitor: usa la major version del plugin che corrisponde alla tua major version di Capacitor (ad esempio plugin v8 con Capacitor 8). La tabella di compatibilità nel README di GitHub elenca le versioni mantenute.

@capgo/native-purchases è free e open source?

Sì. Il codice sorgente di code è pubblico su GitHub all'indirizzo https://github.com/Cap-go/capacitor-native-purchases/ e il pacchetto è gratuito su npm. Bug report e pull request sono i benvenuti.

Posso aggiornare code che usa Native Purchases senza passare per la revisione dell'App Store?

Installare o aggiornare il plugin modifica il code nativo, quindi serve una nuova build per lo store. Dopo, le modifiche a JavaScript, HTML e CSS che chiamano il plugin possono essere rilasciate subito con le live updates di Capgo.

Pubblica modifiche ai Native Purchases senza attendere la revisione dell'app

Una volta incluso il plugin nel tuo store build, Capgo invia le modifiche a JavaScript, HTML e CSS tramite live updates in pochi minuti.

Inizia con Capgo