Pasar al contenido principal
Volver a plugins
@capgo/compras nativas
Tutorial
@capgo/compras nativas

Compras nativas

Implementa compras en la aplicación nativas, suscripciones y planes de facturación de StoreKit de iOS con un simple API

Guía

Tutorial sobre compras nativas

Usando @capgo/native-purchases

Suscripciones en la aplicación de fácil uso.

Instalar

bun add @capgo/native-purchases
bunx cap sync

¿Qué Esta Plugin Exposa

  • restorePurchases - Restaura la sesión anterior de un usuario y vincula sus appUserIDs a cualquier usuario que también esté utilizando esos .
  • getAppTransaction - Obtiene la información de transacción de la aplicación, que proporciona detalles sobre cuando el usuario descargó o compró la aplicación por primera vez.
  • isEntitledToOldBusinessModel - Compara la versión original de la aplicación desde la transacción de la aplicación contra una versión objetivo para determinar si el usuario tiene derecho a características de un modelo de negocio anterior.
  • getProducts - Carga los metadatos de producto de la tienda, incluidos los términos de precios de suscripción iOS admitidos.
  • purchaseProduct - Inicia el proceso de compra para el producto seleccionado y el plan de facturación.

Ejemplo de Uso

restorePurchases

Restaura la sesión anterior de un usuario y vincula sus appUserIDs a cualquier usuario que también esté utilizando esos .

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

await NativePurchases.restorePurchases();

getAppTransaction

Obtiene la información de transacción de la aplicación, que proporciona detalles sobre cuando el usuario descargó o compró la aplicación por primera vez.

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

Compara la versión original de la aplicación desde la transacción de la aplicación contra una versión objetivo para determinar si el usuario tiene derecho a características de un modelo de negocio anterior.

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

Inicia el proceso de compra para el producto dado. Para suscripciones de Android, pasa el ID de plan base de Google Play planIdentifier. Para las suscripciones de iOS admitidas que ofrecen facturación mensual con un compromiso de 12 meses, pase 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,
});

suscripciones de compromiso mensual de iOS

En versiones de iOS admitidas, StoreKit puede exponer un plan de facturación mensual con un compromiso de 12 meses a través de pricingTermsMuestre estos términos en su pantalla de pago antes de la compra:

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

Referencia completa

Siga adelante desde Usando @capgo/native-purchases

Si está utilizando Usando @capgo/native-purchases para planificar pagos y compras, conecte con @capgo/native-purchases para los detalles de implementación en @capgo/native-purchases, Getting Started para los detalles de implementación en Getting Started, Capgo Pricing para el flujo de trabajo del producto en Capgo Pricing, Sistema de pago para los detalles de implementación en Sistema de pago, y Libro de estrategias de ingresos para los detalles de implementación en Libro de estrategias de ingresos.