Usa el contrato revisado de auditoría de evidencia de entrega
La evidencia de entrega no es un único campo ni botón. Combina una transición final de pedido autorizada, entrega efectiva al cliente, imagen opcional, validación de ubicación, campo PIN opcional del cliente, análisis del resultado y acciones posteriores parciales.
No trates un campo PIN ni una ubicación informada como prueba segura de entrega.
Disponibilidad
La acción final de entrega puede aparecer en estados de pedido de fase de cliente aptos. La configuración del proyecto puede exigir una imagen de estado o PIN del cliente y aplicar reglas de ubicación. Si no se abre un modal de medios o PIN, la primera acción puede enviarse directamente y eludir la lista local de requisitos de ubicación de la App.
Que se vea un control/modal no es autorización, prueba de entrega al cliente, prueba de ubicación ni aceptación del servidor.
Requisitos previos
- Confirma la propiedad Driver autenticada y la revisión actual del pedido.
- Confirma la entrega real al cliente conforme a la política de la organización.
- Trata imagen, ubicación y PIN como entradas candidatas independientes.
- Exige generación/validación del lado del servidor para cualquier secreto de seguridad.
- Usa códigos tipados de error/resultado del servidor, no análisis de texto traducido.
- Define limpieza y recibos de efectos parciales para medios, ubicación, pedido y acciones posteriores del proveedor.
Límites de responsabilidad
| Responsable | Responsabilidad |
|---|---|
| Interfaz de Driver App | Presentar requisitos, capturar entradas candidatas, estado de carga y resultado explícito |
| API de pedidos | Autorizar Driver/pedido/transición y validar entradas obligatorias |
| Servicio PIN | Generar el secreto de un solo uso en el servidor, vincularlo al pedido/sesión, validarlo una vez, hacerlo vencer y auditarlo |
| Servicio de ubicación | Validar coordenadas finitas, origen, vigencia, política de simulación, destino y marca temporal |
| Servicio multimedia | Autorizar antes de cargar, validar tipo/contenido, guardar con datos mínimos y limpiar efectos parciales |
| Analizador de resultados | Consumir resultado tipado de máquina y conservar estados sin resolver/parciales |
| Servicios posteriores | Historial, mensajes, informes, rastros, cola, sockets, notificaciones, trabajos/plugins |
| Despachador/seguridad | Conciliar excepciones y evidencia fallida/parcial |
Entradas y resultados
Las entradas candidatas pueden incluir intención de transición final, revisión del pedido, imagen, ubicación y PIN. Ninguna es evidencia antes de la autorización y validación del servidor.
El contrato de resultado aceptado debe distinguir la escritura central del pedido, escritura de medios, escritura de ubicación/historial, validación del PIN y cada acción posterior. Debe devolver un recibo de resultado idempotente para la revisión actual del pedido y el estado parcial/limpieza explícitos.
La gestión actual del resultado en el cliente incluye éxito, error genérico, formulario force condicional, respuesta no JSON/excepción, ramas diferidas y parciales. Algunas rutas force dependen de fragmentos de texto coincidentes; las mayúsculas, localización, puntuación, forma de arreglo/objeto, subcadena, valores vacíos o no relacionados pueden clasificarse incorrectamente.
Seguridad y privacidad
- Nunca generes un PIN seguro solo en el cliente ni lo compares únicamente de forma local.
- Nunca aceptes que una coordenada del cliente sea reciente/confiable solo porque se envió con la solicitud.
- Autoriza antes de subir una imagen, escribir ubicación o mutar el pedido.
- Vincula la evidencia a un pedido, Driver, entrega al cliente, sesión, propósito y hora únicos.
- No expongas públicamente PIN, derivación, textos del analizador, ID de pedido, coordenadas, medios, tokens, cargas de proveedores ni casos de pruebas de seguridad.
- Los medios generales del chat no son evidencia de entrega.
Límites y estados de fallo
| Estado | Interpretación requerida |
|---|---|
| Botón final visible | Solo candidato del cliente |
| Campo PIN completo | Requisito local, no prueba del servidor |
| Vista previa de imagen | Candidata multimedia local |
| Pasa la comprobación de ubicación | Candidata local, no confianza del servidor |
| Solicitud cargando | Sin resolver; no reintentar |
| Formulario force | Candidato de recuperación seleccionado por el analizador, no garantía del servidor |
| Pedido devuelto | Solo respuesta central |
| Pedido desaparece/figura completado | Vista del cliente, no recibo completo de evidencia |
| Medios/historial/proveedor parcial | Requiere conciliación explícita |
No se han establecido PIN seguro, presencia confiable, paquete atómico de evidencia, reversión, finalización exactamente una vez, reintento seguro ni éxito desplegado.
Diagnóstico
El PIN parece válido localmente
No lo llames evidencia segura. Exige validación de un solo uso, vencible, vinculada al pedido y generada/auditada por el servidor.
La imagen o ubicación tuvo éxito antes de que fallara el pedido
Trata cada elemento como un efecto separado. Ejecuta limpieza/conciliación; no supongas que la reversión del pedido eliminó los datos multimedia o del historial.
Aparece inesperadamente un formulario force
No continúes basándote solo en texto. Exige un contrato de error tipado y verifica con el despachador la revisión actual del pedido.
El pedido parece completado, pero la evidencia no está clara
No repitas. Concilia independientemente los recibos centrales del pedido, imagen, ubicación, PIN, historial, cola y proveedor.
El chat contiene una foto o firma
No la uses como evidencia de entrega. Los medios del chat tienen contratos independientes de autorización/almacenamiento y destinatario.
Guías relacionadas: Completar una entrega · Usar el contrato de mutación de pedidos · Usar el contrato revisado de mapas