Exemple #1
0
        public async Task <TOut> SendAsync <TIn, TOut>(TIn messageBodyObject, string operation)
            where TIn : class, new()
            where TOut : class, new()
        {
            var messageBodyXmlElement = XmlManipulator.Serialize(messageBodyObject);
            var mesasgeBodyXmlString  = messageBodyXmlElement.OuterXml;

            Logger?.Debug("Created XML document from DTOs.", new { XmlString = mesasgeBodyXmlString });
            XmlMessageSerialized?.Invoke(this, new XmlMessageSerializedEventArgs(messageBodyXmlElement, (messageBodyObject as SendRevenueXmlMessage)?.Data.BillNumber));

            var soapMessage = new SoapMessage(new SoapMessagePart(messageBodyXmlElement));
            var xmlDocument = Certificate == null?soapMessage.GetXmlDocument() : soapMessage.GetSignedXmlDocument(Certificate, SignAlgorithm);

            var xml = xmlDocument.OuterXml;

            Logger?.Debug("Created signed XML.", new { SoapString = xml });

            var response = await HttpClient.SendAsync(xml, operation);

            Logger?.Debug("Received RAW response from EET servers.", new { HttpResponseBody = response });

            var soapBody = GetSoapBody(response);

            return(XmlManipulator.Deserialize <TOut>(soapBody));
        }
        public async Task <TOut> SendAsync <TIn, TOut>(TIn messageBodyObject, string operation)
            where TIn : class, new()
            where TOut : class, new()
        {
            var ns = new XmlSerializerNamespaces();

            ns.Add("", "http://DescargaMasivaTerceros.gob.mx");

            var messageBodyXmlElement = XmlManipulator.Serialize(messageBodyObject, ns);
            var mesasgeBodyXmlString  = messageBodyXmlElement.OuterXml;

            Logger?.Info("Created XML document from DTOs.", new { XmlString = mesasgeBodyXmlString });
            XmlMessageSerialized?.Invoke(this, new XmlMessageSerializedEventArgs(messageBodyXmlElement, "Autenticando"));

            var soapMessage = new SoapMessage(new SoapMessagePart(messageBodyXmlElement));
            var xmlDocument = Certificate == null?soapMessage.GetXmlDocument() : soapMessage.GetSignedXmlDocument(Certificate, SignAlgorithm);

            var xml = xmlDocument.OuterXml;

            Logger?.Debug("Created signed XML.", new { SoapString = xml });

            var response = await HttpClient.SendAsync(xml, operation).ConfigureAwait(false);

            Logger?.Debug("Received RAW response from SAT servers.", new { HttpResponseBody = response });

            var soapBody = GetSoapBody(response);

            return(XmlManipulator.Deserialize <TOut>(soapBody));
        }
        public EetClient(Certificate certificate, EetEnvironment environment = EetEnvironment.Production, TimeSpan?httpTimeout = null, EetLogger logger = null)
        {
            var effectiveTimeout = httpTimeout ?? TimeSpan.FromSeconds(2);

            EetSoapClient = new EetSoapClient(certificate, environment, effectiveTimeout, logger);
            Logger        = logger;
            EetSoapClient.HttpRequestFinished  += (sender, args) => HttpRequestFinished?.Invoke(this, args);
            EetSoapClient.XmlMessageSerialized += (sender, args) => XmlMessageSerialized?.Invoke(this, args);
        }
        public CfdiRecoveryClient(Certificate certificate, TimeSpan?httpTimeout = null, Logger logger = null)
        {
            var effectiveTimeout = httpTimeout ?? TimeSpan.FromSeconds(2);

            SatSoapClient = new SatSoapClient(certificate, effectiveTimeout, logger);
            Logger        = logger;
            SatSoapClient.HttpRequestFinished  += (sender, args) => HttpRequestFinished?.Invoke(this, args);
            SatSoapClient.XmlMessageSerialized += (sender, args) => XmlMessageSerialized?.Invoke(this, args);
        }
Exemple #5
0
        public SatSoapClient(Certificate certificate, TimeSpan httpTimeout, Logger logger)
        {
            var endpointUri = new Uri("https://cfdidescargamasivasolicitud.clouda.sat.gob.mx/Autenticacion/Autenticacion.svc");

            SoapClient = new SoapClient(endpointUri, certificate, httpTimeout, SignAlgorithm.Sha1);
            Logger     = logger;
            SoapClient.HttpRequestFinished  += (sender, args) => HttpRequestFinished?.Invoke(this, args);
            SoapClient.XmlMessageSerialized += (sender, args) => XmlMessageSerialized?.Invoke(this, args);
        }
        public EetSoapClient(Certificate certificate, EetEnvironment environment, TimeSpan httpTimeout, EetLogger logger = null)
        {
            Environment = environment;
            var subdomain   = environment == EetEnvironment.Production ? "prod" : "pg";
            var endpointUri = new Uri($"https://{subdomain}.eet.cz:443/eet/services/EETServiceSOAP/v3");

            SoapClient = new SoapClient(endpointUri, certificate, httpTimeout, SignAlgorithm.Sha256, logger);
            Logger     = logger;
            SoapClient.HttpRequestFinished  += (sender, args) => HttpRequestFinished?.Invoke(this, args);
            SoapClient.XmlMessageSerialized += (sender, args) => XmlMessageSerialized?.Invoke(this, args);
        }
Exemple #7
0
        public Client(X509Certificate certificate, Environment environment, TimeSpan httpTimeout)
        {
            var domain = environment.Match(
                Environment.Test, _ => "www7.aeat.es",
                Environment.Production, _ => "www1.agenciatributaria.gob.es"
                );
            var endpointUri = new Uri($"https://{domain}/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP");

            SoapClient = new SoapClient(endpointUri, certificate, httpTimeout);
            SoapClient.HttpRequestFinished  += (sender, args) => HttpRequestFinished?.Invoke(this, args);
            SoapClient.XmlMessageSerialized += (sender, args) => XmlMessageSerialized?.Invoke(this, args);
        }
        internal async Task <TOut> SendAsync <TIn, TOut>(TIn messageBodyObject)
            where TIn : class, new()
            where TOut : class, new()
        {
            var messageBodyXmlElement = XmlManipulator.Serialize(messageBodyObject);

            XmlMessageSerialized?.Invoke(this, new XmlMessageSerializedEventArgs(messageBodyXmlElement));

            var soapMessage = new SoapMessage(messageBodyXmlElement);
            var xmlDocument = soapMessage.GetXmlDocument();
            var xml         = xmlDocument.OuterXml;

            var response = await GetResponseAsync(xml);

            var soapBody = GetSoapBody(response);

            return(XmlManipulator.Deserialize <TOut>(soapBody));
        }