Vai alla sezione principale
Torna ai plugin
@capgo/acquisti nativi
Tutorial
@capgo/acquisti nativi

Acquisti nativi

Implement pagamenti nativi all'interno dell'applicazione, abbonamenti e piani di fatturazione di StoreKit iOS con un semplice API

Guida

Tutorial sui pagamenti nativi

Usando @capgo/native-purchases

Abbonamenti all'app facile da usare.

Installa

bun add @capgo/native-purchases
bunx cap sync

Cosa questo plugin espone

  • restorePurchases - Ripristina il precedente e collega gli appUserIDs di un utente a qualsiasi altro utente che utilizza anche quegli .
  • getAppTransaction - Ottiene le informazioni sulle transazioni dell'app, che forniscono dettagli su quando l'utente ha scaricato o acquistato l'app per la prima volta.
  • 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 commerciale precedente.
  • getProducts - Carica i metadati dei prodotti della store, compresi i termini di prezzo delle sottoscrizioni iOS supportate.
  • purchaseProduct - Avvia il processo di acquisto per il prodotto selezionato e il piano di fatturazione.

Esempio di utilizzo

restorePurchases

Ripristina il precedente e collega gli appUserIDs di un utente a qualsiasi altro utente che utilizza anche quegli .

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

await NativePurchases.restorePurchases();

getAppTransaction

Ottiene le informazioni sulle transazioni dell'app, che forniscono dettagli su quando 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 commerciale 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

Avvia il processo di acquisto per il prodotto specificato. Per le sottoscrizioni Android, passa l'ID del piano base di Google Play come planIdentifier. 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 di iOS

In versioni iOS supportate, 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/acquisti-nativi

Se stai utilizzando Utilizzo di @capgo/acquisti-nativi per pianificare pagamenti e acquisti, connettilo con @capgo/native-purchases per i dettagli di implementazione in @capgo/native-purchases, Inizio per i dettagli di implementazione in Inizio, Capgo Prezzi per il flusso di lavoro del prodotto in Capgo Prezzi, Sistema di pagamento per i dettagli di implementazione in Sistema di pagamento, e Libro dei guadagni per i dettagli di implementazione in Libro dei guadagni.