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); }
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); }
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)); }