Passer au contenu principal
Retour aux plugins
@capgo/achats-natifs
Tutoriel
@capgo/achats-natifs

Achats natifs

Implémentez des achats natifs dans l'application, des abonnements et des plans de facturation StoreKit iOS avec un API

Guide

Tutoriel sur les achats natifs

Tester sur appareil

Téléchargez l'application Capgo, puis scannez le code QR code.

Lien QR de prévisualisation du plugin d'achats natifs code

Utilisation de @capgo/native-purchases

Les abonnements en application facilités.

Installer

bun add @capgo/native-purchases
bunx cap sync

Ce que ce plugin expose

  • restorePurchases - Récupère les achats précédents d'un utilisateur et relie leurs appUserIDs à ceux d'un utilisateur utilisant également ceux-ci.
  • 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'application originale de la transaction d'application avec une version cible pour déterminer si l'utilisateur a droit à des fonctionnalités d'un modèle commercial antérieur.
  • getProducts - Charge les métadonnées de 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

Récupère les informations de transaction de l'application, qui fournit 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

Comparez la version d'origine de l'application 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';

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 comme

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 iOS avec facturation mensuelle et engagement de 12 mois, passez planIdentifierLes abonnements iOS mensuels 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 facturation mensuel avec un engagement de 12 mois à travers

Affichez ces conditions sur votre page 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__:

Continuez à partir de l'utilisation de @capgo/achats-natifs

Si vous utilisez L'utilisation de @capgo/achats-natifs pour planifier les paiements et les achats, connectez-l’avec @capgo/achats-natifs pour les détails d'implémentation dans @capgo/achats-natifs Documentation de démarrage pour les détails d'implémentation dans Documentation de démarrage Tarification de Capgo pour le flux de 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.