public EDEEnviarDocumentoResponse ProcesarComunicacionBaja(EDEComunicacionBaja objEComunicacionBaja, EDEDocumentoElectronico objEDocumentoElectronico) { EDECommonRequest objEDECommonRequest = new EDECommonRequest(); objEDECommonRequest.NombreMetodoProcesoAPI = "api/GenerarComunicacionBaja"; objEDECommonRequest.NombreMetodoEnvioAPI = "api/EnviarDocumento"; objEDECommonRequest.TipoDocumento = "CB";//CB objEDECommonRequest.NombreCarpetaSinFirmar = "XML_Sin_Firmar_ComunicacionBaja"; objEDECommonRequest.NombreCarpetaFirmado = "XML_Firmado_ComunicacionBaja"; objEDECommonRequest.NombreCarpeaCDR = "CDR_Response_ComunicacionBaja"; //REEMPLAZAR AQUI objEDECommonRequest.RUC = objEDocumentoElectronico.RUC; // "20512588868"; objEDECommonRequest.UsuarioSOL = objEDocumentoElectronico.UsuarioSOL; //"MODDATOS"; objEDECommonRequest.ClaveSOL = objEDocumentoElectronico.ClaveSOL; //"MODDATOS"; byte[] fileBytes; string someUrl = objEDocumentoElectronico.URLCertificado;//"http://files.centrixperu.com/cliente_1/certificado_digital/certificado.pfx"; using (var webClient = new WebClient()) { fileBytes = webClient.DownloadData(someUrl); } objEDECommonRequest.URLCertificado = Convert.ToBase64String(fileBytes); objEDECommonRequest.ClaveDigital = objEDocumentoElectronico.ClaveDigital;//"Linsoft3233"; return(ProcesarFAE <EDEComunicacionBaja>(objEComunicacionBaja, objEDECommonRequest, objEComunicacionBaja.IdDocumento)); }
private EDEEnviarDocumentoResponse ProcesarFAE <T>(T objFAE, EDECommonRequest objEDECommonRequest, string IdDocumento) { objEDERespuesta = new EDEEnviarDocumentoResponse(); //Generacion de XML var respuestaGenerarXMLRequest = RequestApiService <T, EDEDocumentoResponse>(objEDECommonRequest.NombreMetodoProcesoAPI, objFAE); if (respuestaGenerarXMLRequest.Exito) { //Guardar XML WriteResponsePackage(objEDECommonRequest.IdCliente.ToString(), objEDECommonRequest.IdTienda.ToString(), objEDECommonRequest.NombreCarpetaSinFirmar, $"{IdDocumento}.xml", respuestaGenerarXMLRequest.TramaXmlSinFirma); //Firmar el documento XML var firmadoRequest = new EDEFirmadoRequest { TramaXmlSinFirma = respuestaGenerarXMLRequest.TramaXmlSinFirma, CertificadoDigital = objEDECommonRequest.URLCertificado, PasswordCertificado = objEDECommonRequest.ClaveDigital, UnSoloNodoExtension = objEDECommonRequest.TipoDocumento == "RC" ? true : false }; var respuestaFirmarXML = RequestApiService <EDEFirmadoRequest, EDEFirmadoResponse>("api/Firmar", firmadoRequest); if (respuestaFirmarXML.Exito) { objEDERespuesta.Pila = respuestaFirmarXML.ResumenFirma; //Guardar XML Firmado WriteResponsePackage(objEDECommonRequest.IdCliente.ToString(), objEDECommonRequest.IdTienda.ToString(), objEDECommonRequest.NombreCarpetaFirmado, $"{IdDocumento}.xml", respuestaFirmarXML.TramaXmlFirmado); //Enviar XML firmado a SUNAT EDEEnviarDocumentoRequest enviarDocumentoRequest; //Uso de discriminante para comunicacion de baja if (objEDECommonRequest.TipoDocumento != "CB") { enviarDocumentoRequest = new EDEEnviarDocumentoRequest { Ruc = objEDECommonRequest.RUC, UsuarioSol = objEDECommonRequest.UsuarioSOL, ClaveSol = objEDECommonRequest.ClaveSOL, EndPointUrl = ConfigurationManager.AppSettings["EndPointBoletaSUNAT"].ToString(), IdDocumento = IdDocumento, TipoDocumento = objEDECommonRequest.TipoDocumento, TramaXmlFirmado = respuestaFirmarXML.TramaXmlFirmado }; } else { enviarDocumentoRequest = new EDEEnviarDocumentoRequest { Ruc = objEDECommonRequest.RUC, UsuarioSol = objEDECommonRequest.UsuarioSOL, ClaveSol = objEDECommonRequest.ClaveSOL, EndPointUrl = ConfigurationManager.AppSettings["EndPointBoletaSUNAT"].ToString(), IdDocumento = IdDocumento, TramaXmlFirmado = respuestaFirmarXML.TramaXmlFirmado }; } EDEEnviarDocumentoResponse respuestaEnvio = RequestApiService <EDEEnviarDocumentoRequest, EDEEnviarDocumentoResponse>(objEDECommonRequest.NombreMetodoEnvioAPI, enviarDocumentoRequest); if (respuestaEnvio.Exito) { //Guardar CDR WriteResponsePackage(objEDECommonRequest.IdCliente.ToString(), objEDECommonRequest.IdTienda.ToString(), objEDECommonRequest.NombreCarpeaCDR, $"{IdDocumento}.zip", respuestaEnvio.TramaZipCdr != null ? respuestaEnvio.TramaZipCdr : string.Empty); objEDERespuesta.TramaZipCdr = respuestaEnvio.TramaZipCdr; objEDERespuesta.MensajeRespuesta = respuestaEnvio.MensajeRespuesta != null ? respuestaEnvio.MensajeRespuesta : string.Format("Correcto {0}", respuestaEnvio.NombreArchivo); objEDERespuesta.Exito = true; } else { objEDERespuesta.Exito = false; objEDERespuesta.CodigoRespuesta = respuestaEnvio.CodigoRespuesta; objEDERespuesta.MensajeError = respuestaEnvio.MensajeError; } } else { objEDERespuesta.Exito = false; objEDERespuesta.MensajeError = respuestaFirmarXML.MensajeError; } } else { objEDERespuesta.Exito = false; objEDERespuesta.MensajeError = respuestaGenerarXMLRequest.MensajeError; } return(objEDERespuesta); }