Aller directement au contenu principal
Retour aux plugins
@capgo/achats-natifs
Tutoriel
par github.com/Cap-go

Achats natifs

Implémentez les achats en application natifs, les abonnements et les plans de facturation de StoreKit iOS avec un API simple

Guide

Tutoriel sur les Achat Natives

Utilisation de @capgo/native-purchases

Les Abonnements en Ligne Faciles à Utiliser.

Installer

bun add @capgo/native-purchases
bunx cap sync

Ce Plugin Expose

  • restorePurchases - Récupère les informations précédentes d'un utilisateur et les relie à l'ID d'utilisateur de l'application avec n'importe quel utilisateur utilisant également ces .
  • getAppTransaction - Obtient les informations de transaction de l'application, qui fournit des détails sur quand l'utilisateur a téléchargé ou acheté l'application pour la première fois.
  • isEntitledToOldBusinessModel - Compare la version d'application originale de la transaction de l'application avec une version cible pour déterminer si l'utilisateur a le droit à des fonctionnalités d'un modèle commercial antérieur.
  • getProducts - Charge les métadonnées du produit de magasin, y compris les termes de tarification iOS pris en charge.
  • purchaseProduct - Démarre le processus d'achat pour le produit sélectionné et le plan de facturation.

Exemple d'utilisation

restorePurchases

Récupère les informations de transaction d'application, qui fournissent des détails sur la date à laquelle l'utilisateur a téléchargé ou acheté l'application pour la première fois.

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

await NativePurchases.restorePurchases();

getAppTransaction

Compare la version d'application originale de la transaction d'application avec une version cible pour déterminer si l'utilisateur a le droit à des fonctionnalités d'un modèle commercial antérieur.

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

Démarre le processus d'achat pour le produit spécifié. Pour les abonnements Android, passez l'ID de plan de base Google Play.

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

Pour les abonnements iOS pris en charge qui proposent une tarification mensuelle avec un engagement de 12 mois, passez planIdentifierAbonnements mensuels iOS avec engagement de 12 mois 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,
});

Sur les versions iOS prises en charge, StoreKit peut exposer un plan de tarification mensuel avec un engagement de 12 mois à travers

Affichez ces termes sur votre mur de paiement avant l'achat : pricingTermsRéférence complète

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

- __CAPGO_KEEP_0__