Saltar al contenido principal
@capgo/native-purchases Comercio Código abierto

Native Purchases de Capgo plugin Capacitor

Implementa compras in-app nativas, suscripciones y planes de facturación de StoreKit en iOS con un simple API

Instalar

bun add @capgo/native-purchases bunx cap sync
npm, pnpm o yarn
  • npm install @capgo/native-purchases
  • pnpm add @capgo/native-purchases
  • yarn add @capgo/native-purchases

Guía

Cómo usar Native Purchases en Capacitor

Uso de @capgo/native-purchases

Suscripciones in-app sin complicaciones.

Instalar

bun add @capgo/native-purchases
bunx cap sync

Lo que expone este plugin

  • restorePurchases - Restaura las compras previas del usuario y vincula sus appUserIDs con cualquier otro usuario que las use.
  • getAppTransaction - Obtiene la información de la App Transaction, que detalla cuándo el usuario descargó o compró la app originalmente.
  • isEntitledToOldBusinessModel - Compara la versión original de la App Transaction con una versión objetivo para verificar si el usuario tiene derecho a funciones de un modelo de negocio anterior.
  • getProducts - Carga los metadatos de los productos de la tienda, incluyendo los términos de precios de suscripción soportados en iOS.
  • purchaseProduct - Inicia el proceso de compra para el producto y plan de facturación seleccionados.

Ejemplo de uso

restorePurchases

Restaura las compras previas del usuario y vincula sus appUserIDs con cualquier otro usuario que las use.

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

await NativePurchases.restorePurchases();

getAppTransaction

Obtiene la información de la App Transaction, que detalla cuándo el usuario descargó o compró la app originalmente.

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 App Transaction con una versión objetivo para verificar si el usuario tiene derecho a funciones 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 del producto indicado. Para suscripciones en Android, pasa el ID del plan base de Google Play como planIdentifier. Para suscripciones de iOS soportadas con facturación mensual y compromiso de 12 meses, pasa 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 mensuales con compromiso en iOS

En versiones de iOS compatibles, StoreKit permite ofrecer un plan de facturación mensual con compromiso de 12 meses mediante pricingTerms. Muestra estos términos en tu paywall 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

Continúa desde Usando @capgo/native-purchases

Si estás usando Uso de @capgo/native-purchases para planificar pagos y compras, conéctalo con @capgo/native-purchases para los detalles de implementación en @capgo/native-purchases, Primeros pasos para los detalles de implementación en Primeros pasos, Precios de Capgo para el flujo de trabajo de productos en Capgo Pricing, Sistema de pagos para el detalle de implementación en el sistema de pagos, y Estrategia de ingresos para el detalle de implementación en Revenue Playbook.

FAQ

FAQ del plugin Native Purchases

¿Cómo instalo el plugin Native Purchases en una app Capacitor?

Ejecuta "bun add @capgo/native-purchases" (o "npm install @capgo/native-purchases"), luego ejecuta "bunx cap sync" para que los proyectos de iOS y Android detecten el code nativo. Impórtalo desde "@capgo/native-purchases" en tu code.

¿Es compatible @capgo/native-purchases con React, Vue y Angular?

Sí. Native Purchases es un paquete Capacitor, así que funciona con cualquier framework web que se ejecute dentro de Capacitor, incluidos Ionic, React, Vue, Angular, Svelte y JavaScript puro.

¿Qué versión de Capacitor soporta @capgo/native-purchases?

Los plugins de Capgo siguen la versión mayor de Capacitor: usa la versión mayor del plugin que coincida con la versión mayor de tu Capacitor (por ejemplo, el plugin v8 con Capacitor 8). La tabla de compatibilidad del README de GitHub lista las versiones mantenidas.

¿Es @capgo/native-purchases gratuito y de código abierto?

Sí. El código fuente de code es público en GitHub: https://github.com/Cap-go/capacitor-native-purchases/ y el paquete se puede instalar gratis desde npm. Se agradecen los reportes de bugs y pull requests.

¿Puedo actualizar code que usa Native Purchases sin pasar por la revisión de la App Store?

Instalar o actualizar el plugin cambia el code nativo, así que requiere un nuevo build para la tienda. Después, los cambios de JavaScript, HTML y CSS que llamen al plugin se pueden publicar al instante con las live updates de Capgo.

Lanza cambios en Native Purchases sin esperar la revisión de la app

Una vez que el plugin esté en tu store build, Capgo live updates envía tus cambios de JavaScript, HTML y CSS a los usuarios en minutos.

Empieza con Capgo