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

Compras nativas

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

Guía

Tutoriales sobre compras nativas

Probar en dispositivo

Descargar la aplicación Capgo, luego escanea el código QR code.

Enlace QR de vista previa del plugin de compras nativas code

Usando @capgo/native-purchases

Suscripciones en la aplicación hechas fáciles.

Instalar

bun add @capgo/native-purchases
bunx cap sync

Qué expone este plugin

  • restorePurchases - Restaura el anterior estado del usuario y vincula sus appUserIDs a cualquier usuario que también utilice esos .
  • getAppTransaction - Obtiene la información de transacción de la aplicación, que proporciona detalles sobre cuando el usuario descargó o compró originalmente la aplicación.
  • 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 de iOS admitidos.
  • purchaseProduct - Inicia el proceso de compra para el producto seleccionado y el plan de facturación.

Uso de ejemplo

restorePurchases

Restaura la información de usuario anterior y vincula sus appUserIDs con cualquier usuario que también utilice 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 suscripciones de Android, pase el ID de plan base de Google Play como planIdentifierInicia el proceso de compra para el producto dado. Para suscripciones de iOS con 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 iOS con compromiso de 12 meses

En versiones de iOS compatibles, 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

Sigue adelante desde Using @capgo/native-purchases

Si estás utilizando Using @capgo/native-purchases para planificar pagos y compras, conecta 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 el sistema de pago, y Libro de estrategia de ingresos para los detalles de implementación en el Libro de estrategia de ingresos.