Aller directement au contenu principal
Retour aux plugins
@capgo/achats natifs
Tutoriel
@capgo/achats natifs

Achat natif

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

Guide

Tutoriel sur les achats natives

Utilisation de @capgo/native-purchases

Les abonnements en application facilités.

Install

bun add @capgo/native-purchases
bunx cap sync

Ce que ce plugin expose

  • restorePurchases - Restaure la version précédente d'un utilisateur et relie leurs appUserIDs à ceux d'un utilisateur qui utilise également ces .
  • getAppTransaction - Récupère les informations de transaction de l'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.
  • isEntitledToOldBusinessModel - Compare la version d'origine de l'application à partir 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 la boutique, y compris les termes de tarification des abonnements 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

Restaure la version précédente d'un utilisateur et relie leurs appUserIDs à ceux d'un utilisateur qui utilise également ces .

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

await NativePurchases.restorePurchases();

getAppTransaction

Récupère les informations de transaction de l'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';

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

Compare la version d'origine de l'application à partir 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.

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

Démarre le processus d'achat pour le produit spécifié. Pour les abonnements Android, passez l'ID du plan de base Google Play comme argument planIdentifier. Pour les abonnements iOS pris en charge qui offrent un facturation mensuelle avec un engagement de 12 mois, passez 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,
});

abonnements mensuels de 12 mois iOS

Sur les versions iOS prises en charge, StoreKit peut exposer un plan de facturation mensuel avec un engagement de 12 mois à travers pricingTermsAffichez ces termes sur votre page de paiement avant l'achat :

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

Référence complète

Continuez à partir de l'utilisation de @capgo/native-purchases

Si vous utilisez En utilisant @capgo/native-purchases pour planifier les paiements et les achats, connectez-le avec @capgo/achats-natifs pour les détails d'implémentation dans @capgo/achats-natifs, Démarrage pour les détails d'implémentation dans Démarrage, Capgo Tarification pour le flux de travail du produit dans Capgo Tarification, Système de paiement pour les détails d'implémentation dans Système de paiement, et Guide de revenus pour les détails d'implémentation dans Guide de revenus.