コード例 #1
0
 /// <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;
 }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
 /// <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;
 }