Cita:
Empezado por sglorka
Pues te puedo dar alguna idea. Cuando recibes un error al enviar unmensaje se abren tres escenarios.
Escenario 1, no has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat no se ha enterado de nada, fallo en comunicación, no hay Internet, endponit inccesible, ausencia de certificado, certificado no apto para autenticación sobre línea segura...) y el error lo devuelve el protocolo de comunicaciones. Los posibles errores que te vas a encontrar son "System.ServiceModel.EndpointNotFoundException", "System.ServiceModel.CommunicationException", "System.Security.Cryptography.CryptographicException", "System.ServiceModel.ProtocolException" . Debes proceder informando del error y volviendo a reenviar el mensaje.
Escenario 2, has llegado al servidor de Aeat, el objeto Respuesta tiene a Nothing la propiedad "RespuestaLinea" además del nodo "DatosPresentacion". Esta respuesta indica que la Aeat se ha enterado de que le ha llegado algo pero no entiende qué es, debido a que el modelo tiene algún tipo de fallo en su construcción, falta algún nodo, o el certificado que estás utilizando no lo reconoce. El típico error que recibirás es "System.ServiceModel.FaultException". En este caso, el reenvío no va a solucionar nada, debes informar al cliente que tiene que ponerse en contacto con su Servicio Técnico.
Escenario 3, has llegado al servidor de la Aeat, la propiedad "RespuestaLinea" del objeto Respuesta tiene contenido. El servicio te ha aceptado el mensaje con sus Registros de Facturación indicando en cada línea el estado de cada registro, Aceptado, Aceptado con Errores, Incorrecto. Informarás al cliente de lo que hay que subsanar o rectificar
|
Gracias sglorka, en el caso de hoy que el servidor estaba caído, no había respuesta, no había un el objeto Respuesta, saltaba una excepción (yo programo en c# .net).
Pero igualmente supongo que seria el escenario 1, informar que ha fallado la conexión y volver a intentar enviar.
Lo que yo preguntaba era si el mensaje lo redacta el programador, por ejemplo: "
ha fallado la conexión" o cogéis el texto de la excepción "
Error al recibir la respuesta HTTP a https://prewww1.aeat.es/wlpl/TIKE-CO.../VerifactuSOAP. Puede deberse a que el enlace del extremo de servicio no usa el protocolo HTTP. También puede deberse a que el servidor anula un contexto de solicitud HTTP (posiblemente por el cierre del servicio)." por ejemplo.
Si mostramos el segundo mensaje, el usuario es probable que no lo entienda
