/// <summary> /// Copnstruye una instancia de la clase /// Peticion. /// </summary> /// <param name="modelo">Modelo para el que se ha construido la /// petición.</param> /// <param name="test">Indica si la presentación se realiza en el entorno en pruebas de la AEAT.</param> /// <param name="certRef">Ruta de certificado para la presentación, en caso de que se utilice uno externo.</param> /// <param name="certClave">Contraseña del certificado.</param> /// <param name="action">Acción a realizar en el sistema TGVI: /// <para>'InicializarEnvio'</para> /// <para>'EnviarDatos'</para> /// <para>'PresentarEnvio'</para> /// </param> /// <param name="encoding">Tipo de encoding para el envío del registro.</param> /// <param name="contentType">Tipo del contenido de la petición http.</param> public PeticionTgvi(RegistroMod modelo, bool test = false, string certRef = null, string certClave = null, string action = "InicializarEnvio", Encoding encoding = null, string contentType = "text/plain") : base(modelo, test, certRef, certClave, encoding) { _Accion = action; _ContentType = contentType; }
/// <summary> /// Copnstruye una instancia de la clase /// Peticion. /// </summary> /// <param name="modelo">Modelo para el que se ha construido la /// petición.</param> /// <param name="test">Indica si la presentación se realiza en el entorno en pruebas de la AEAT.</param> /// <param name="certRef">Ruta de certificado para la presentación, en caso de que se utilice uno externo.</param> /// <param name="certClave">Contraseña del certificado.</param> /// <param name="encoding">Tipo de encoding para el envío del registro.</param> public Peticion(RegistroMod modelo, bool test = false, string certRef = null, string certClave = null, Encoding encoding = null) { Modelo = modelo; _Test = test; modelo.Encoding = encoding == null ? modelo.Encoding : encoding; InicializaCertificado(certRef, certClave); _TextoFichero = modelo.AFichero().Replace("\n", ""); InicializaFirmaBasica(); _TextoPeticion = modelo.DatosPeticionPresentacion(); _BytesPeticion = modelo.Encoding.GetBytes(_TextoPeticion); }
/// <summary> /// En caso de que la url devuelta por la aeat no devuelva un pdf /// o falle por algo, relizamos un intento en otra fuente alternativa. /// </summary> protected virtual byte[] RecuperaAlternativaPdf() { // Esto es un 'hack - chapuzilla' para solucionar un bug en el entorno de pruebas // de la aeat (resulta que en ocasiones devuelven una url de producción en el entorno // de pruebas en la que no está el documento pdf) var errorPdf = false; byte[] binarioRespuesta = null; var enlaceTest = EnlacePdf.Replace("https://www2.agenciatributaria.gob.es", RaizUrlAlternativaPdf); try { binarioRespuesta = RegistroMod.DescargaPdfMedianteEnlace(enlaceTest); } catch { errorPdf = true; } var esPdf = EsFormatoPDF(binarioRespuesta); if (errorPdf || !esPdf) { // Esto es otro 'hack - chapuzilla' para cuando la presentación en real tiene el servidor parado. // Probamos a descargar el documento PDF desde otro repositorio de la AEAT (disponible dentro del // apartado de colaboradores con el certificado de colaborador para un CSV presentado). binarioRespuesta = RegistroMod.DescargarPdfMedianteCSV(CSV, _Peticion.IsTest); esPdf = EsFormatoPDF(binarioRespuesta); if (!esPdf) { return(null); } } return(binarioRespuesta); }
/// <summary> /// Copnstruye una instancia de la clase /// Peticion. /// </summary> /// <param name="modelo">Modelo para el que se ha construido la /// petición.</param> /// <param name="test">Indica si la presentación se realiza en el entorno en pruebas de la AEAT.</param> /// <param name="certRef">Ruta de certificado para la presentación, en caso de que se utilice uno externo.</param> /// <param name="certClave">Contraseña del certificado.</param> /// <param name="encoding">Tipo de encoding para el envío del registro.</param> /// <param name="contentType">Tipo del contenido de la petición http.</param> public PeticionPresBasicaDos(RegistroMod modelo, bool test = false, string certRef = null, string certClave = null, Encoding encoding = null, string contentType = "application/json;charset=UTF-8") : base(modelo, test, certRef, certClave, encoding) { _ContentType = contentType; }