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
- GitHub: https://github.com/Cap-go/capacitor-native-purchases/
- Docs: /docs/plugins/native-purchases/
- Guía de compromiso mensual en iOS: /docs/plugins/native-purchases/ios-monthly-commitment/
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.