Saltar a contenido

Flujo de Pantallas - Pagos y Suscripciones

Identificador: UIF-PAY-001 Modulo: MTS-PAY-001 - Pagos y Suscripciones Version: 1.0.0 Fecha: 2025-12-05 Autor: MobileUxUiDrone (Eight of Eight)


1. Vision General

Este documento especifica los flujos de navegacion y pantallas para el modulo de Pagos y Suscripciones, cubriendo:

  • Comparativa de planes (Free/Pro/Perfect)
  • Flujo de suscripcion via App Store / Google Play
  • Gestion de suscripcion activa
  • Cancelacion con ofertas de retencion
  • Reactivacion de suscripcion

Nota Importante: MedTime no procesa pagos directamente. Todas las transacciones se manejan a traves de App Store (iOS) y Google Play (Android).


2. Arquitectura de Navegacion

2.1. Diagrama de Flujo General

flowchart TD
    ENTRY[Multiples Entry Points] --> COMPARE[SCR-PAY-001<br>Comparativa de Planes]

    COMPARE --> PRO[SCR-PAY-002<br>Detalle Plan Pro]
    COMPARE --> PERFECT[SCR-PAY-003<br>Detalle Plan Perfect]

    PRO --> CHECK[SCR-PAY-004<br>Checkout]
    PERFECT --> CHECK

    CHECK --> STORE[App Store / Google Play]
    STORE --> CONFIRM[SCR-PAY-005<br>Confirmacion]

    CONFIRM --> MANAGE[SCR-PAY-006<br>Gestion Suscripcion]

    MANAGE --> CANCEL[SCR-PAY-007<br>Cancelacion]
    MANAGE --> STORE_MANAGE[Ajustes Store]

    CANCEL --> RETAIN[Oferta Retencion]
    RETAIN -->|Acepta| MANAGE
    RETAIN -->|Rechaza| CANCEL_CONFIRM[Confirmar Cancelacion]
    CANCEL_CONFIRM --> FREE[Volver a Free]

    FREE --> REACT[SCR-PAY-008<br>Reactivacion]
    REACT --> COMPARE

2.2. Entry Points al Modulo

Entry Point Contexto Destino
Tab Mas > Suscripcion Acceso directo SCR-PAY-001 o SCR-PAY-006
Banner Free (Home) Usuario Free SCR-PAY-001
Limite alcanzado Funcionalidad bloqueada SCR-PAY-001 con feature destacada
Badge Pro en feature Feature Pro/Perfect SCR-PAY-002 o SCR-PAY-003
Deep link upgrade Marketing SCR-PAY-001

3. User Journeys Detallados

3.1. Journey: Suscribirse a Pro (Paciente Independiente)

Persona: PI - Paciente adulto Objetivo: Obtener funcionalidades avanzadas (cuidadores, sync, sin anuncios) Contexto: Usuario Free alcanza limite de medicamentos o quiere cuidadores

flowchart TD
    A[Banner: Limite alcanzado] --> B[SCR-PAY-001<br>Ver planes]
    B --> C[Comparar opciones]
    C --> D[Tap Pro - $9.99/mes]
    D --> E[SCR-PAY-002<br>Detalle Pro]
    E --> F[Tap Suscribirse]
    F --> G[SCR-PAY-004<br>Checkout]
    G --> H[Redirect a App Store]
    H --> I{Pago exitoso?}
    I -->|Si| J[SCR-PAY-005<br>Bienvenido a Pro!]
    I -->|No| K[Error o cancelacion]
    J --> L[Features desbloqueadas]

Pantallas involucradas:

  1. SCR-PAY-001 - Comparativa de planes
  2. SCR-PAY-002 - Detalle plan Pro
  3. SCR-PAY-004 - Checkout
  4. SCR-PAY-005 - Confirmacion

Tiempo objetivo: < 2 minutos (excluyendo tiempo en Store)

Puntos de friction mitigados:

  • Comparativa clara sin jerga tecnica
  • Precio prominente pero no agresivo
  • Un solo tap para ir al Store
  • Confirmacion inmediata tras compra

3.2. Journey: Upgrade a Perfect (Usuario Pro)

Persona: PI - Usuario Pro actual Objetivo: Obtener cuidadores ilimitados, MFA avanzado, soporte prioritario Contexto: Usuario Pro necesita mas de 5 cuidadores

flowchart TD
    A[SCR-PAY-006<br>Gestion actual Pro] --> B[Ver beneficios Perfect]
    B --> C[SCR-PAY-003<br>Detalle Perfect]
    C --> D[Comparar con Pro actual]
    D --> E{Convencido?}
    E -->|Si| F[Tap Actualizar]
    F --> G[SCR-PAY-004<br>Checkout upgrade]
    G --> H[App Store upgrade]
    H --> I[SCR-PAY-005<br>Bienvenido a Perfect!]
    E -->|No| J[Volver a gestion]

Diferencia con nuevo usuario:

  • Se muestra diferencial de precio vs. Pro actual
  • Se destacan features adicionales sobre Pro
  • Upgrade es mas simple (ya tiene metodo de pago)

4. Flujo de Checkout via Stores

4.1. Secuencia de Compra

sequenceDiagram
    participant U as Usuario
    participant App as MedTime App
    participant Store as App Store/Google Play
    participant Server as MedTime Server

    U->>App: Tap "Suscribirse"
    App->>Store: Iniciar compra (product_id)
    Store->>U: Mostrar UI de pago
    U->>Store: Confirmar pago (FaceID/Touch/PIN)
    Store->>Store: Procesar transaccion

    alt Pago exitoso
        Store->>App: Callback: purchase_success
        App->>Server: Validar recibo
        Server->>Server: Actualizar tier usuario
        Server->>App: Confirmacion
        App->>U: SCR-PAY-005 (Exito)
    else Pago fallido/cancelado
        Store->>App: Callback: purchase_failed
        App->>U: Mostrar mensaje apropiado
    end

4.2. Estados de Compra

Estado UI en App
Iniciando Spinner + "Conectando con [Store]..."
En Store App en background, Store en foreground
Validando Spinner + "Verificando compra..."
Exito SCR-PAY-005
Error de red Toast + "Reintentar"
Cancelado por usuario Volver a pantalla anterior
Error de pago Toast con mensaje del Store

5. Flujo de Cancelacion con Retencion

5.1. Diagrama de Cancelacion

flowchart TD
    A[SCR-PAY-006<br>Tap Cancelar] --> B[SCR-PAY-007<br>Motivo cancelacion]
    B --> C{Motivo?}

    C -->|Precio| D[Oferta: 50% off 3 meses]
    C -->|No uso| E[Oferta: Pausar 1 mes]
    C -->|Alternativa| F[Oferta: Mejoras proximamente]
    C -->|Otro| G[Sin oferta especifica]

    D & E & F & G --> H{Acepta oferta?}

    H -->|Si| I[Aplicar oferta]
    I --> J[SCR-PAY-006<br>Suscripcion activa]

    H -->|No| K[Confirmar cancelacion]
    K --> L[Redirect a Store Settings]
    L --> M{Cancela en Store?}
    M -->|Si| N[Suscripcion cancela al final del periodo]
    M -->|No| J

5.2. Ofertas de Retencion

Motivo Oferta Duracion
Precio muy alto 50% descuento 3 meses
No uso suficiente Pausa gratuita 1 mes
Encontre alternativa Feature preview N/A
Problemas tecnicos Soporte prioritario 1 mes

Nota: Las ofertas se aplican solo UNA vez por usuario.


6. Especificaciones de Precio

6.1. Estructura de Planes

Plan Precio Mensual Precio Anual Ahorro Anual
Free $0 $0 N/A
Pro $9.99 USD $99.99 USD ~17%
Perfect $19.99 USD $199.99 USD ~17%

6.2. Presentacion de Precios

MENSUAL                          ANUAL (Ahorra 17%)
+------------------------+       +------------------------+
| Pro                    |       | Pro                    |
| $9.99/mes              |       | $99.99/ano             |
|                        |       | ($8.33/mes)            |
| [Suscribirse]          |       | [Suscribirse]          |
+------------------------+       +------------------------+

6.3. Consideraciones de Precio

  • Precios mostrados son base USD, Store muestra en moneda local
  • Impuestos se aplican por Store segun region
  • Trial de 7 dias disponible para nuevos usuarios (Pro/Perfect)
  • Precio prominente pero no agresivo
  • No usar tacticas de presion (countdown, "ultimas horas", etc.)

7. Estados de Suscripcion

7.1. Estados Posibles

Estado Visual Acciones Disponibles
active Badge verde "Activo" Gestionar, Cancelar, Upgrade
trial Badge azul "Prueba gratuita" Ver dias restantes, Gestionar
grace_period Badge amarillo "Problema de pago" Actualizar pago
expired Badge rojo "Expirado" Reactivar
cancelled Badge gris "Cancela el [fecha]" Reactivar

7.2. Grace Period (Periodo de Gracia)

Si hay problema de pago:

  • Store intenta cobrar automaticamente
  • Usuario mantiene acceso 16 dias (App Store) / 7 dias (Google Play)
  • Mostrar banner de advertencia
  • CTA: "Actualizar metodo de pago"

8. Validaciones y Errores

8.1. Errores de Compra

Codigo Store Mensaje UI Accion
SKErrorPaymentCancelled No mostrar error Volver a pantalla anterior
SKErrorPaymentInvalid "Pago no procesado" "Reintentar"
SKErrorPaymentNotAllowed "Compras no permitidas" Instrucciones para habilitar
SKErrorStoreProductNotAvailable "Plan no disponible" Contactar soporte
SKErrorCloudServiceNetworkConnectionFailed "Sin conexion" "Reintentar cuando tengas conexion"

8.2. Validacion de Recibo

Escenario Accion
Recibo valido Activar tier, mostrar confirmacion
Recibo invalido Log + mostrar error generico
Recibo ya usado Verificar si es mismo usuario
Error de red Reintentar con backoff

Ruta Destino
medtime://subscription SCR-PAY-001 (Free) o SCR-PAY-006 (suscrito)
medtime://subscription/plans SCR-PAY-001
medtime://subscription/pro SCR-PAY-002
medtime://subscription/perfect SCR-PAY-003
medtime://subscription/manage SCR-PAY-006
medtime://subscription/reactivate SCR-PAY-008

10. Integraciones

10.1. Notificaciones

Evento Push Email
Suscripcion exitosa Si Si
Upgrade exitoso Si Si
Trial por expirar (3 dias) Si Si
Problema de pago Si Si
Suscripcion cancelada - Si
Suscripcion expirada Si Si
Oferta especial Opcional Opcional

10.2. Analytics

Evento Parametros
plans_viewed source, current_tier
plan_detail_viewed plan
checkout_started plan, period
purchase_completed plan, period, price
purchase_failed plan, error_code
cancellation_started plan, tenure_days
retention_offer_shown offer_type
retention_offer_accepted offer_type
reactivation_completed plan

11. Consideraciones de Accesibilidad

11.1. Pantallas Criticas

Pantalla Nivel WCAG Notas
SCR-PAY-001 AA Precios claros, comparativa accesible
SCR-PAY-004 AA Proceso claro antes de ir al Store
SCR-PAY-007 AA Motivos de cancelacion claros

11.2. Requisitos Especiales

  • Precios: Siempre con label "por mes" o "por ano"
  • Comparativa: Tabla accesible o lista alternativa
  • Trial: Dias restantes claramente anunciados
  • Ofertas: No depender solo de color para destacar

12. Metricas

12.1. KPIs del Modulo

Metrica Objetivo
Conversion Free->Pro > 5%
Conversion Pro->Perfect > 10%
Trial to Paid > 40%
Churn mensual < 5%
Efectividad retencion > 20%

12.2. Funnel de Conversion

View Plans (100%)
    |
    v
Plan Detail (60%)
    |
    v
Checkout Start (40%)
    |
    v
Store Redirect (35%)
    |
    v
Purchase Complete (25%)

13. Referencias


Documento generado por MobileUxUiDrone (Eight of Eight) "Monetizacion etica: valor claro, sin presion."