Saltare al contenuto principale
Torna ai plugin
@capgo/acquisti-nativi
Tutorial
di github.com/Cap-go

Acquisti nativi

Implementa gli acquisti in-app nativi, le sottoscrizioni e i piani di fatturazione di StoreKit iOS con un semplice API

Guida

Tutorial su Acquisti Nativi

Usare @capgo/native-purchases

Sottoscrizioni in-app Facili.

Installare

bun add @capgo/native-purchases
bunx cap sync

[What This Plugin Exposes]

  • restorePurchases [Restaura il precedente del utente e collega i loro appUserIDs a qualsiasi utente che utilizza anche quei .]
  • 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 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 business 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

[Restaura il precedente del utente e collega i loro appUserIDs a qualsiasi utente che utilizza anche quei .]

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 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 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

[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,
});

impegni mensili di abbonamento iOS

Sulle 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 for the implementation detail in @capgo/native-purchases, Iniziare per i dettagli di implementazione in Iniziare Capgo Pricing per il workflow del prodotto in Capgo Pricing Sistema di pagamento per i dettagli di implementazione in Sistema di pagamento, e Libro delle strategie di ricavo per i dettagli di implementazione in Libro delle strategie di ricavo.