ArtPay Lib

Librería oficial (Flutter Plugin) para gestionar licencias de pago de la plataforma Art-Pay a través de la importación y validación estricta de archivos .lic.

A partir de la versión 0.0.6, la librería se integra como un puente nativo de alta seguridad (Cross-App) apoyándose exclusivamente en la Billetera Art-Pay instalada en el dispositivo para verificar la identidad del usuario, erradicando la necesidad de permisos telefónicos intrusivos y protegiendo tus apps contra la piratería.

🚀 Características Principales

  • Validación Cross-App (Billetera Art-Pay): El SDK se comunica internamente vía ContentProvider nativo en Android con la app de la Billetera para verificar que el usuario real es el dueño de la licencia, garantizando que el .lic no pueda ser compartido ni usado por terceros.
  • Cero Permisos Intrusivos (Privacy-First): A diferencia de versiones anteriores, ya NO es necesario exigir permisos para leer el teléfono ni las tarjetas SIM (READ_PHONE_STATE). Tu app permanecerá completamente limpia y respetuosa con la privacidad de los usuarios.
  • UI Integrada Obligatoria: La librería fuerza y gestiona automáticamente los SnackBars y Dialogs (nativos) en pantalla ante éxitos, errores o problemas de red. ¡No tienes que codificar UI de estado!
  • Totalmente Agnóstica y Reutilizable: Descubre dinámicamente el packageName de la App anfitriona y automatiza la visibilidad de paquetes ocultos en Android 11+ mediante inyección de <queries>. Todo autoconfigurado.

📦 Instalación

Solamente necesitas agregar el plugin a tus dependencias en el archivo pubspec.yaml de tu app:

dependencies:
  artpay_lib: ^0.0.6

¡Atención! Ya NO requieres modificar tu AndroidManifest.xml añadiendo permisos peligrosos. La librería inyecta sus propias configuraciones de visibilidad de red transparentemente bajo el capó de Android.

🛠 Modo de Implementación y Uso

La librería se encarga silenciosa y enteramente de todo el flujo de validación:

  1. Abre un explorador de archivos para que el usuario importe su .lic.
  2. Extrae en milisegundos y silenciosamente el Token JWT de la Billetera Art-Pay (si está instalada y logueada).
  3. Envía los metadatos cifrados al servidor y procesa la respuesta, mostrando coloridos Snackbars en caso de éxito o fallo en la pantalla por encima de tu UI.

Uso Básico

Integra un único botón o acción asíncrona en tu vista:

import 'package:artpay_lib/artpay_lib.dart';

void verificarLicenciaConBilletera(BuildContext context) async {
  
  await ArtPayPayment.handlePayment(
    context: context,
    expectedProductToken: '1d9f9688-6ac6-42b1-8274-334c64e2a875', // UUID de tu producto en el dashboard Art-Pay
    onSuccess: (ArtPayVerificationResult result) {
      // El usuario es validado y legitimo. 
      // Activarás la app aquí, guardarás el estado local con su fecha result.accessExpiresAt.
      print("¡Licencia activada: ${result.productName}!");
    },
    onError: (String errorMessage) {
      // (Opcional) Capturar error textualmente. 
      // El SDK de todas formas mostrará un hermosos cartel rojo de error al frontend.
      print("Error: $errorMessage");
    }
  );
  
}

Nota: La Billetera Art-Pay debe estar instalada y logueada por el usuario final en su móvil, de lo contrario la librería informará amablemente en un pop-up que debe descargar/iniciar sesión en la billetera.

Libraries

artpay_lib