Pasar al contenido principal

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 historial de compras de un usuario y vincula su appUserIDs con 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ó 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 historial de un usuario y vincula sus IDs de usuario de la aplicación a cualquier usuario que también utilice esos IDs.

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 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.

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 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 [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, Inicio para los detalles de implementación en Inicio, 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.