Límites de enlaces de la aplicación
Customer App puede recibir un enlace configurado para el proyecto y pedir a su sistema de navegación que abra un destino reconocido. Reconocerlo es solo el primer paso: no demuestra que el cliente actual pueda acceder al destino, que este exista ni que abrirlo esté libre de efectos de producto.
Usa únicamente enlaces emitidos para el proyecto. No construyas manualmente, publiques ni ejecutes un enlace de Customer App hasta verificar de forma aislada la compilación actual, la autorización del destino, el fallback y el comportamiento del ciclo de vida.
Separa cada responsabilidad
| Capa | Responsabilidad | Lo que no demuestra |
|---|---|---|
| Sistema operativo | Entregar un enlace configurado a una App instalada cuando coincide el registro de plataforma. | Que Customer App reconozca la ruta o pueda abrir su destino. |
| Analizador de Customer App | Clasificar un enlace recibido y extraer la entrada requerida para una clase de ruta conocida. | Propiedad, disponibilidad, vigencia o elegibilidad comercial del destino. |
| Navegación de Customer App | Aplicar controles de inicio, cuenta, verificación, perfil, proyecto y conectividad antes de mostrar una pantalla. | Que la lectura de datos o acción de esa pantalla haya tenido éxito. |
| Servicios de Ordering.co | Autorizar al cliente actual y devolver el estado permitido del negocio, carrito o pedido. | Entrega del sistema operativo o finalización del proveedor. |
| Responsable del destino | Definir el resultado visible, estados de fallo, ruta segura de retorno y cualquier efecto de producto/proveedor. | Que todas las demás rutas se comporten igual. |
Clases de rutas actuales
El código fuente disponible de la aplicación define las siguientes clases de rutas. La tabla describe el comportamiento previsto de navegación, no un contrato ejecutable de URL pública.
| Clase de ruta | Destino previsto | Autoridad requerida | Límite importante |
|---|---|---|---|
| Inicio | Navegación principal de cuenta o inicio de la App. | App/proyecto actuales y estado de inicio. | Antes pueden aparecer pasos de perfil, verificación, tutorial, inicio de sesión o ubicación. No es un acceso directo público garantizado a Home. |
| Negocio | Pantalla para explorar un negocio. | Referencia de negocio emitida para el proyecto más ubicación actual, contexto de pedido y disponibilidad del negocio. | Reconocer el enlace no demuestra que el negocio esté disponible para el cliente. |
| Producto dentro de un negocio | Transferencia a un producto a través del recorrido del negocio. | Contexto de negocio, categoría y producto emitido para el proyecto y relacionado entre sí. | No se ha establecido que abrir una ruta de producto esté libre de efectos de producto. No publiques enlaces a productos hasta demostrar que el destino no los activa. |
| Checkout | Checkout para un carrito accesible. | Cuenta actual o contexto de invitado autorizado, proyecto exacto y carrito autorizado por el servidor. | Una referencia de carrito no es un token de capacidad. Abrir checkout puede iniciar lecturas sensibles a proveedores y recuperación. |
| Detalles del pedido | Detalles de un pedido autorizado. | Cuenta actual o contrato de acceso temporal aprobado de forma independiente. | Una referencia de ruta no demuestra propiedad. La respuesta del pedido y los datos de seguimiento, mensajes o pagos requieren autorización independiente. |
| No compatible | Fallback general de enlaces de la App. | Ninguna. | La compilación actual no establece un fallback fiable y visible para el cliente. No prometas una pantalla Page Not Found ni un destino de retorno específico. |
Trata como no confiable la entrada del analizador
Consume únicamente enlaces generados por el proyecto aprobado o un flujo propiedad de Ordering.co. Antes de navegar, la integración debe:
- Hacer coincidir la aplicación y el proyecto configurados sin exponer sus identificadores.
- Rechazar clases de ruta desconocidas, campos adicionales, entradas incompletas, codificación mal formada y valores fuera del contrato público.
- Vincular la intención sensible a la cuenta actual o contexto autorizado de invitado, generación de sesión, proyecto, destino y recurso esperado.
- Aplicar reglas de vigencia y uso único cuando el enlace pueda alcanzar datos sensibles o un flujo con consecuencias.
- Autorizar el destino antes de montar una pantalla que haga lecturas, abra un proveedor o pueda cambiar un carrito o pedido.
- Consumir la intención una sola vez y borrarla al cerrar sesión, cambiar de cuenta o proyecto, o fallar la validación.
Nunca incluyas contraseñas, información de pago, credenciales de proveedor, tokens de sesión, tokens de notificación, datos privados de clientes ni ubicación precisa en un enlace de la App.
Sigue la secuencia de gestión
| Etapa | Resultado previsto | Responsable del fallo |
|---|---|---|
| Entrega de plataforma | La compilación configurada recibe el enlace. | Compilación móvil y registro del sistema operativo. |
| Análisis | Una clase de ruta conocida con entrada completa y tipada. | Responsable del analizador de enlaces. |
| Disponibilidad | La navegación está lista y la generación prevista de proyecto/cuenta sigue vigente. | Responsables de inicio, rutas y sesión. |
| Autorización | Ordering.co confirma que quien llama puede acceder al destino. | Responsable de API/seguridad del destino. |
| Presentación | El destino muestra su propio estado de carga, disponible, no disponible o error. | Responsable de producto del destino. |
| Finalización | Toda acción solicitada o resultado del proveedor se concilia con el estado autoritativo de Ordering.co. | Responsable de mutación/proveedor del destino. |
No deduzcas una etapa posterior a partir de una anterior. En particular, la entrega no demuestra el análisis, el análisis no demuestra la autorización y la navegación visible no demuestra la finalización.
Gestiona el ciclo de vida y los controles de cuenta
El inicio en frío, la apertura en primer plano, el retorno desde segundo plano, la entrega duplicada y una aplicación ya en ejecución pueden tener tiempos distintos. Pon en cola una intención aceptada solo hasta que la navegación esté lista, vincúlala a la generación actual de sesión/proyecto y consúmela una sola vez.
Los controles de cuenta y experiencia siguen siendo autoritativos. Primero, el cliente puede ver el inicio de sesión, la verificación de cuenta, completar perfil, configurar ubicación u otro requisito previo. No eludas esos controles ni vuelvas a reproducir la intención original después de que el cliente cambie de cuenta o proyecto, a menos que el servidor vuelva a autorizarla.
Planifica destinos no disponibles o incompatibles
| Resultado observable | Interpretación segura | Siguiente acción de ingeniería |
|---|---|---|
| La App no se abre | No se verificó el registro de plataforma, la compilación instalada o la propiedad del esquema. | Confirma la compilación y el proyecto previstos sin publicar el valor del enlace. |
| La App abre un lugar inesperado | No se verificó el análisis, la prioridad de inicio o el estado obsoleto de navegación. | Registra la clase de ruta y estado de App sin identificadores; no vuelvas a abrirlo repetidamente. |
| Aparece un requisito previo | El destino sigue sujeto a controles. | Completa solo el requisito previo visible compatible y luego vuelve a autorizar el destino. |
| El destino indica que no está disponible | Se puede reconocer la ruta mientras su recurso o contexto actual no está disponible. | Usa el contrato de recuperación propio del destino; no edites ni adivines el enlace. |
| El enlace no es compatible o está mal formado | Actualmente no se ha establecido un fallback fiable de Customer App. | Detén el procesamiento y vuelve mediante navegación de la App de confianza. |
| Se produce un error tras una transferencia de carrito, checkout o pedido | El resultado de la operación puede ser ambiguo. | Concilia el estado autoritativo del carrito/pedido antes de reintentar. |
Verifica sin efectos en vivo
La verificación debe usar una compilación no productiva o un adaptador de analizador puro, referencias reservadas que no resuelvan recursos, un registrador inerte de destinos y cero efectos de producto o proveedor. Cubre:
- clases de rutas aceptadas y rechazadas;
- entradas completas, ausentes, adicionales, mal formadas y demasiado grandes;
- controles sin sesión, con sesión, de invitado, verificación y finalización de perfil;
- generaciones correctas y obsoletas de cuenta/proyecto;
- entrega en frío, activa, segundo plano, duplicada y repetida;
- recursos no disponibles y no autorizados sin revelar su existencia;
- retorno seguro y foco accesible en iOS y Android; y
- cero mutaciones de carrito, checkout, pedido, pago, notificación, proveedor o almacenamiento antes de autorizar explícitamente el destino.
Usa identificadores sintéticos o reservados en pruebas y ejemplos. Nunca uses identificadores reales de clientes, negocios, carritos, pedidos, notificaciones ni proveedores.
Diagnóstico
Un enlace funciona en una compilación, pero no en otra
Trata por separado cada compilación y configuración de proyecto. Confirma que el enlace se emitiera para la compilación prevista; no copies sus valores privados en registros ni tickets.
Un enlace a producto abre un negocio, pero no Product Details
No supongas que la entrada del producto estaba completa ni que Product Details sea la única ruta válida. Mantén deshabilitados los enlaces a productos hasta demostrar que el destino no activa un efecto de producto y que la entrada requerida está completa.
Checkout o detalles del pedido no están disponibles
Reconocer la ruta no autoriza el carrito ni el pedido. Verifica la cuenta, proyecto y recurso actuales mediante navegación confiable dentro de la App. No sustituyas la referencia ni repitas una acción con consecuencias.
Un enlace no compatible no muestra error visible
Eso corresponde al límite actual del fallback bloqueado. Detén el procesamiento del enlace y vuelve mediante navegación de confianza de la App en vez de prometer un fallback.
Referencias relacionadas: Comportamiento de navegación del cliente · Enlaces de la App no válidos o no disponibles · Límites de configuración y experiencia · Límites de integraciones nativas · Límites de pagos