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

Compras nativas

Implementar compras in-app nativas, suscripciones y planes de facturación de StoreKit de iOS con un API sencillo

Guía

Tutorial sobre compras nativas

Probar en dispositivo

Descargue la aplicación Capgo, luego escane el código QR code.

Enlace de código QR de la vista previa del plugin de compras nativas code

Usando @capgo/native-purchases

Facilita las suscripciones en la aplicación.

Instalar

bun add @capgo/native-purchases
bunx cap sync

¿Qué expone este plugin?

  • restorePurchases - Restaura el historial de compras de un usuario y vincula sus IDs de usuario de la aplicación a cualquier usuario que también utilice esos IDs.
  • 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 originalmente.
  • isEntitledToOldBusinessModel - Compara la versión original de la aplicación desde la transacción de la aplicación con 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 de iOS admitidos.
  • purchaseProduct - Inicia el proceso de compra para el producto seleccionado y el plan de facturación.

Uso de ejemplo

restorePurchases

Restaura el perfil anterior del usuario y vincula sus appUserIDs con 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 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 de la aplicación original de la transacción de la aplicación con 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 las suscripciones de Android, pase el ID de plan base de Google Play como planIdentifierPara las suscripciones de iOS compatibles 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 mensuales de compromiso de iOS

En versiones de iOS compatibles, StoreKit puede exponer un plan de facturación mensual con un compromiso de 12 meses a través de pricingTermsMostrar 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

Sigue adelante desde Usando @capgo/native-purchases

Si estás utilizando Usando @capgo/native-purchases para planificar pagos y compras, conecta con @capgo/native-purchases para los detalles de implementación en @capgo/native-purchases, Iniciar sesión para los detalles de implementación en Iniciar sesión, Capgo Precios para el flujo de trabajo del producto en Capgo Precios, Sistema de pago para los detalles de implementación en el sistema de pago, y Libro de estrategia de ingresos para los detalles de implementación en el Libro de estrategia de ingresos.