Saltar al contenido

Empezando

  • isBillingSupported() – check for StoreKit / Google Play availability.
  • getProduct() / getProducts(): precio de obtención, título localizado, descripción, ofertas de introducción.
  • purchaseProduct() – initiate StoreKit 2 or Billing client purchase flow.
  • restorePurchases(): reproduce compras históricas y sincroniza con el dispositivo actual.
  • getPurchases() – list all iOS transactions or Play Billing purchases.
  • manageSubscriptions(): abre la interfaz de usuario de administración de suscripciones nativa.
  • addListener('transactionUpdated'): maneja las transacciones pendientes de StoreKit 2 cuando se inicia su aplicación (solo iOS).
  1. Mostrar precios de tienda: Apple requiere mostrar product.title y product.priceString; nunca codificar.
  2. Use appAccountToken – deterministically generate a UUID (v5) from your user ID to link purchases to accounts.
  3. Validar del lado del servidor: envíe receipt (iOS) / purchaseToken (Android) a su backend para su verificación.
  4. Handle errors gracefully – check for user cancellations, network failures, and unsupported billing environments.
  5. Pruébelo minuciosamente: siga la iOS guía de entorno sandbox y la Android guía de entorno sandbox.
  6. Offer restore & management – add UI buttons wired to restorePurchases() and manageSubscriptions().

Productos no cargando

  • Asegúrese de que el ID del paquete/ID de la aplicación coincida con la configuración de la tienda.
  • Confirm the product IDs are active and approved (App Store) or activated (Google Play).
  • Espere varias horas después de crear productos; La propagación en la tienda no es instantánea.

Compra cancelada o atascada

  • Los usuarios pueden cancelar el flujo medio; envuelva llamadas en try/catch y muestre mensajes de error amigables.
  • For Android, ensure test accounts install the app from Play Store (internal track) so Billing works.
  • Verifique logcat/Xcode para ver si hay errores de facturación cuando se ejecuta en el dispositivo.

Estado de suscripción incorrecto

  • Use getPurchases() to compare store data with your local entitlement cache.
  • On Android, always query the Google Play Developer API with the purchaseToken to obtain expiration dates or refund status.
  • El iOS, consultar isActive/expirationDate y validar recibos para detectar reembolsos o revocaciones.