Saltare al contenuto principale
Indietro ai plugin
@capgo/acquisti-nativi
Istruzioni
@capgo/acquisti-nativi

Plugin di acquisti nativi

Implement native in-app purchases, subscriptions, and iOS StoreKit commitment billing plans with a simple API

Guida

Tutoriale su acquisti nativi

Esegui il test sul dispositivo

Scarica l'app Capgo, poi scansione il codice QR code.

Collegamento QR di anteprima del plugin di acquisti nativi code

Utilizzo di @capgo/native-purchases

Facilita le sottoscrizioni in-app.

Installa

bun add @capgo/native-purchases
bunx cap sync

Cos'è che questo plugin esporre

  • restorePurchases - Ripristina l'acquisto precedente di un utente e collega le sue appUserIDs a qualsiasi utente che utilizza anche quelle .
  • getAppTransaction - Ottiene le informazioni sulle transazioni dell'app, che fornisce dettagli sul momento in cui l'utente ha scaricato o acquistato l'app per la prima volta.
  • isEntitledToOldBusinessModel - Confronta la versione dell'app originale dalle transazioni dell'app con una versione di destinazione per determinare se l'utente ha diritto a funzionalità da un modello di affari precedente.
  • getProducts - Carica i metadati dei prodotti della store, compresi i termini di prezzi delle sottoscrizioni iOS supportati.
  • purchaseProduct - Avvia il processo di acquisto per il prodotto e il piano di fatturazione selezionati.

Esempio di utilizzo

restorePurchases

Ripristina l'attesa di un utente e collega i suoi appUserIDs a qualsiasi utente che utilizza anche quegli .

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

await NativePurchases.restorePurchases();

getAppTransaction

Ottenere le informazioni sulle transazioni dell'app, che forniscono dettagli sul momento in cui l'utente ha scaricato o acquistato l'app per la prima volta.

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 dalla transazione dell'app con una versione di destinazione per determinare se l'utente ha diritto a funzionalità da un modello di business precedente.

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

Inizia il processo di acquisto per il prodotto specificato. Per le sottoscrizioni Android, passa l'ID del piano base di Google Play come planIdentifierInizia il processo di acquisto per il prodotto specificato. Per le sottoscrizioni iOS supportate che offrono una fatturazione mensile con un 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,
});

Sottoscrizioni mensili iOS con impegno di 12 mesi

Sulla versione iOS supportata, StoreKit può esporre un piano di fatturazione mensile con un impegno di 12 mesi attraverso pricingTermsMostra questi termini sul tuo 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 da Utilizzo di @capgo/native-purchases

Se stai utilizzando Utilizzo di @capgo/native-purchases per pianificare pagamenti e acquisti, connettilo con @capgo/native-purchases per i dettagli di implementazione in @capgo/native-purchases, Iniziare per i dettagli di implementazione in Iniziare, Capgo Pricing per il flusso di lavoro del prodotto in Capgo Pricing, Sistema di pagamento per i dettagli di implementazione nel sistema di pagamento, e Libro delle entrate per i dettagli di implementazione nel Libro delle entrate.