private void UpdateInfoDianCufe(HttpsWebRequestsFunction httpwebrequestFunction) { using (Factory data = new Factory(Usuario, Password, Ambiente)) { string[] _nParametros; object[] _vParametros; //:filename,:filedata,:companyid,:accountid,:status,:transactionid,:xmlfactura,:soapenviado,:soaprespuesta //_nParametros = new string[4] { ":INDI_CUFEDIAN", ":INDI_NUMDOC", ":indi_xmllegal", ":indi_xmlrec" }; //_vParametros = new object[4] { cufe,factura, INDI_XMLLEGAL, httpwebrequestFunction._downloadData }; //_nParametros = new string[3] { ":INDI_CUFEDIAN", ":INDI_NUMDOC", ":indi_xmllegal" }; //_vParametros = new object[3] { cufe, factura, INDI_XMLLEGAL }; _nParametros = new string[3] { ":INDI_CUFEDIAN", ":indi_xmlrec", ":INDI_NUMDOC" }; _vParametros = new object[3] { httpwebrequestFunction._cufe, httpwebrequestFunction._FacturaXml, httpwebrequestFunction._Numdoc }; //_nParametros = new string[2] { ":INDI_CUFEDIAN", ":INDI_NUMDOC" }; //_vParametros = new object[2] { httpwebrequestFunction._cufe, httpwebrequestFunction._Numdoc }; data.executeCommand("updateInfoDianCufe", _nParametros, _vParametros); } }
public string getResponseFunctionDownload(HttpsWebRequestsFunction httpwebrequestFunction) { StringBuilder select = new StringBuilder(); select.Append("<soapenv:Envelope\r\n"); select.Append("xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n"); select.Append("xmlns:inv=\"http://invoice.carvajal.com/invoiceService/\"\r\n"); select.Append("xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-"); select.Append("secext-1.0.xsd\"\r\n"); select.Append("xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-"); select.Append("utility-1.0.xsd\">\r\n"); select.Append(" <soapenv:Header>\r\n"); select.Append(" <wsse:Security>\r\n"); select.Append(" <wsse:UsernameToken wsu:Id=\"" + httpwebrequestFunction._userId + "\">\r\n"); select.Append(" <wsse:Username>"+ httpwebrequestFunction._Username + "</wsse:Username>\r\n"); select.Append("<wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-"); select.Append("wss-username-token-profile-"); select.Append("1.0#PasswordText\">" + httpwebrequestFunction._Password + "</w"); select.Append("sse:Password>\r\n"); select.Append(" <wsse:Nonce EncodingType=\"http://docs.oasis-open.org/wss/2004/01/oasis-"); select.Append("200401-wss-soap-message-security-"); select.Append("1.0#Base64Binary\">" + httpwebrequestFunction._nonce + "</wsse:Nonce>\r\n"); select.Append(" <wsu:Created>"+ httpwebrequestFunction._create + "</wsu:Created>\r\n"); select.Append(" </wsse:UsernameToken>\r\n"); select.Append(" </wsse:Security>\r\n"); select.Append(" </soapenv:Header>\r\n"); select.Append(" <soapenv:Body>\r\n"); select.Append(" <inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n"); select.Append(" <companyId>" + httpwebrequestFunction._companyId + "</companyId>\r\n"); select.Append(" <accountId>" + httpwebrequestFunction._accountid + "</accountId>\r\n"); select.Append(" <documentType>" + httpwebrequestFunction._documentType + "</documentType>\r\n"); select.Append(" <documentPrefix>" + httpwebrequestFunction._documentPrefix + "</documentPrefix>\r\n"); select.Append(" <documentNumber>" + httpwebrequestFunction._documentNumber + "</documentNumber>\r\n"); select.Append(" <resourceType>" + httpwebrequestFunction._resourceType + "</resourceType>\r\n"); select.Append(" </inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n"); select.Append(" </soapenv:Body>\r\n"); select.Append("</soapenv:Envelope>"); return(select.ToString()); }
public void Inicio() { ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>(); ICInformacionDian = LeerInformacionDianEnProceso(); if (ICInformacionDian.Count > 0) { foreach (var item in ICInformacionDian) { validarDirectorio(item.INDI_NUMDOC_V2); console.Ih("Envío factura: " + item.INDI_NUMDOC_V2 + " Fecha : " + item.INDI_FECCREA_TS + "\r\nValidacion : " + item.INDI_VALIDACION_CL); HttpsWebRequestsFunction httpwebrequestFunction = new HttpsWebRequestsFunction(); httpwebrequestFunction = PdfFactura(item.INDI_NUMDOC_V2); //validarDirectorio(item.INDI_NUMDOC_V2); //httpwebrequestFunction = Cufe(item.INDI_NUMDOC_V2); } } else { //...Falta Implementar } }
private HttpsWebRequestsFunction EnviarFactura(HttpsWebRequestsFunction httpwebrequestFunction) { HttpSendXmlDocument httpsSendXmlDocument = new HttpSendXmlDocument(); bool continuar = true; int intentos = 0; while (continuar) { httpwebrequestFunction = httpsSendXmlDocument.httpsSendXmlDocument(httpwebrequestFunction); if (httpwebrequestFunction._httpWebResponseXml.Contains("error")) { intentos++; System.Threading.Thread.Sleep(2000); } else { continuar = false;//<status> } } httpwebrequestFunction._soapRecibido = httpwebrequestFunction._httpWebResponseXml; return(httpwebrequestFunction); }
private byte[] procesarDownloadDataFactura(HttpsWebRequestsFunction httpwebrequestFunction) { //string cufe = string.Empty; byte[] b = Convert.FromBase64String(httpwebrequestFunction._downloadData); string tmp = getEncoding(b); byte[] bytesX = getEncoding(tmp); //string tmpr = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString(); //string rutatmp = @"C:\Transer\ws\facturacion\" + factura + "\\" + factura + "_" + tmpr + ".pdf"; string rutatmp = @"c:\transer\ws\facturacion\" + httpwebrequestFunction._Numdoc + "\\pdf\\" + httpwebrequestFunction._Numdoc + ".pdf"; try { System.IO.File.WriteAllBytes(rutatmp, bytesX); console.Cblue(); console.Ih(" !!! Captura Exitosa Representacion Grafica Factura !!!"); } catch (Exception EX) { Console.WriteLine(EX.Message); } return(bytesX); }
private string GetSoapEnvio(HttpsWebRequestsFunction httpwebrequestFunction) { StringBuilder select = new StringBuilder(); select.Append("<soapenv:Envelope\r\n"); select.Append("xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n"); select.Append("xmlns:inv=\"http://invoice.carvajal.com/invoiceService/\"\r\n"); select.Append("xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-"); select.Append("secext-1.0.xsd\"\r\n"); select.Append("xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-"); select.Append("utility-1.0.xsd\">\r\n"); select.Append(" <soapenv:Header>\r\n"); select.Append(" <wsse:Security>\r\n"); select.Append(" <wsse:UsernameToken wsu:Id=\"" + httpwebrequestFunction._userId + "\">\r\n"); // vgs.upload._userId select.Append(" <wsse:Username>"+ httpwebrequestFunction._Username + "</wsse:Username>\r\n"); select.Append("<wsse:Password Type=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-"); select.Append("wss-username-token-profile-"); select.Append("1.0#PasswordText\">" + httpwebrequestFunction._Password + "</w"); select.Append("sse:Password>\r\n"); select.Append(" <wsse:Nonce EncodingType=\"http://docs.oasis-open.org/wss/2004/01/oasis-"); select.Append("200401-wss-soap-message-security-"); select.Append("1.0#Base64Binary\">" + httpwebrequestFunction._nonce + "</wsse:Nonce>\r\n"); select.Append(" <wsu:Created>"+ httpwebrequestFunction._create + "</wsu:Created>\r\n"); select.Append(" </wsse:UsernameToken>\r\n"); select.Append(" </wsse:Security>\r\n"); select.Append(" </soapenv:Header>\r\n"); select.Append(" <soapenv:Body>\r\n"); select.Append(" <inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n");//sb.Append(" <inv:UploadRequest>\r\n"); select.Append(" <fileName>" + httpwebrequestFunction._FileName + "</fileName>\r\n"); select.Append(" <fileData>" + httpwebrequestFunction._FileData + "</fileData>\r\n"); select.Append(" <companyId>" + httpwebrequestFunction._companyId + "</companyId>\r\n"); select.Append(" <accountId>" + httpwebrequestFunction._accountid + "</accountId>\r\n"); select.Append(" </inv:" + httpwebrequestFunction._HttpWebRequestFunction + ">\r\n");//sb.Append(" </inv:UploadRequest>\r\n"); select.Append(" </soapenv:Body>\r\n"); select.Append("</soapenv:Envelope>"); return(select.ToString()); }
/*VERSION PRODUCCION*/ private void procesarFactura(LogReporteDian infoFactura) { //console.Ih("",false); console.Ih("=> Procesar factura : " + infoFactura.LODI_LLAVE_V2 + " Fecha : " + infoFactura.LODI_FECREGISTRO_DT, false); validarDirectorio(infoFactura.LODI_LLAVE_V2); console.Ih(" * Generando informacion Dian"); int recordProcessed = generarInfoDian(infoFactura.LODI_LLAVE_V2, infoFactura.LODI_OFICINA_NB, infoFactura.LODI_TRANSACCION_NB); ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>(); console.Ih(" * LeerInformacionDian "); ICInformacionDian = LeerInformacionDian(infoFactura.LODI_LLAVE_V2); if (ICInformacionDian.Count > 0) { foreach (var item in ICInformacionDian) { HttpsWebRequestsFunction httpwebrequestFunction = new HttpsWebRequestsFunction(); httpwebrequestFunction._FacturaXml = item.INDI_XMLENV_CB; httpwebrequestFunction._Numdoc = infoFactura.LODI_LLAVE_V2; console.Ih(" * Procesando Anexos "); if (procesarAnexos(infoFactura)) { console.Ih(" * comprimirAdjuntos "); long sizeAnexo = comprimirAdjuntos(infoFactura.LODI_LLAVE_V2, item); if (sizeAnexo <= 2300000) { console.Ih(" * comprimirFactura "); httpwebrequestFunction._FileName = infoFactura.LODI_LLAVE_V2 + ".zip"; if (comprimirFactura(infoFactura.LODI_LLAVE_V2, item.INDI_XMLENV_CB)) { httpwebrequestFunction._FileData = GetdataXmlAnexos(infoFactura.LODI_LLAVE_V2); } } else { console.Ih(" * Los Anexos sobrepasan la capacidad. Se envia sin Anexos"); httpwebrequestFunction._FileName = infoFactura.LODI_LLAVE_V2 + ".xml"; using (StreamWriter writer = new StreamWriter("c:\\transer\\ws\\facturacion\\" + infoFactura.LODI_LLAVE_V2 + "\\anexos\\" + infoFactura.LODI_LLAVE_V2 + ".xml")) { writer.WriteLine(item.INDI_XMLENV_CB); } EncodingFacturacionElectronica encoding = new EncodingFacturacionElectronica(); httpwebrequestFunction._FileData = encoding.Base64Encode(item.INDI_XMLENV_CB); } } else { console.Ih(" * La Factura no tiene Anexos"); httpwebrequestFunction._FileName = infoFactura.LODI_LLAVE_V2 + ".xml"; using (StreamWriter writer = new StreamWriter("c:\\transer\\ws\\facturacion\\" + infoFactura.LODI_LLAVE_V2 + "\\anexos\\" + infoFactura.LODI_LLAVE_V2 + ".xml")) { writer.WriteLine(item.INDI_XMLENV_CB); } EncodingFacturacionElectronica encoding = new EncodingFacturacionElectronica(); httpwebrequestFunction._FileData = encoding.Base64Encode(item.INDI_XMLENV_CB); } console.Ih("=> Maquetando Paquete Soap "); httpwebrequestFunction = MaquetarPaqueteSoap(httpwebrequestFunction); console.Ih("=> Enviando Factura "); httpwebrequestFunction = EnviarFactura(httpwebrequestFunction); console.Ih("=> Procesando Respuesta "); string statusFactura = procesarNewXMLRecibido(httpwebrequestFunction, infoFactura); } } else { //"No hay informacion asociada a la factura.... } }
private HttpsWebRequestsFunction maquetarSoapFactura(HttpsWebRequestsFunction httpwebrequestFunction) { string estado = string.Empty; httpwebrequestFunction._companyId = "860504882"; httpwebrequestFunction._accountid = "860504882_01"; httpwebrequestFunction._Username = "******"; httpwebrequestFunction._userId = "UsernameToken-1"; EncodingFacturacionElectronica coding = new EncodingFacturacionElectronica(); httpwebrequestFunction._Password = coding.SHA256Encrypt("F935Cjm9262@"); //httpwebrequestFunction._Password = coding.SHA256Encrypt("TranserFac@1"); httpwebrequestFunction._HttpWebRequestFunction = "DownloadRequest"; httpwebrequestFunction._create = coding.getCreate(); httpwebrequestFunction._nonce = coding.getNonce(httpwebrequestFunction._FileName); string documentType = "FE"; if (httpwebrequestFunction._FileName.Contains("NC")) { documentType = "NC"; } else { if (httpwebrequestFunction._FileName.Contains("ND")) { documentType = "ND"; } } switch (documentType) { case "NC": { httpwebrequestFunction._documentType = "NC"; break; } case "ND": { httpwebrequestFunction._documentType = "ND"; break; } case "FV": { httpwebrequestFunction._documentType = "FV"; break; } default: { httpwebrequestFunction._documentType = "FE"; break; } } httpwebrequestFunction._documentPrefix = httpwebrequestFunction._FileName.Substring(0, 4); httpwebrequestFunction._documentNumber = httpwebrequestFunction._FileName; httpwebrequestFunction._resourceType = "PDF"; httpWebSend xmlsend = new httpWebSend(); httpwebrequestFunction._soapEnviado = xmlsend.getSoapEnvio(httpwebrequestFunction); //httpSendXmlDocument httpsSendXmlDocument = new httpSendXmlDocument(vgl); ////HttpWebResponseFunction httpWebResponseFunction = new HttpWebResponseFunction("Upload"); //httpwebrequestFunction._httpWebResponseXml = httpsSendXmlDocument.httpsSendXmlDocument(httpwebrequestFunction._soapEnviado); //httpwebrequestFunction._RequestXmlf = httpsSendXmlDocument._vgp.httpwebrequestFunction._RequestXmlf; //httpwebrequestFunction._soapRecibido = httpwebrequestFunction._httpWebResponseXml; ////_vgp.informaciondian.INDI_XMLREC_BL = vgl.httpwebrequestFunction._soapRecibido; //httpWebRequestFunctionDownloadXML httpWebRequestFunctionDownloadXml = new httpWebRequestFunctionDownloadXML(_vgp); //httpWebRequestFunctionDownloadXml.httpwebRequestFunctionDownloadxml(vgl.httpwebrequestFunction._soapRecibido); return(httpwebrequestFunction); }
private HttpsWebRequestsFunction maquetarSoapCufe(HttpsWebRequestsFunction httpwebrequestFunction) { string estado = string.Empty; httpwebrequestFunction._companyId = "860504882"; httpwebrequestFunction._accountid = "860504882_01"; httpwebrequestFunction._Username = "******"; httpwebrequestFunction._userId = "UsernameToken-1"; EncodingFacturacionElectronica coding = new EncodingFacturacionElectronica(); httpwebrequestFunction._Password = coding.SHA256Encrypt("F935Cjm9262@"); //httpwebrequestFunction._Password = coding.SHA256Encrypt("TranserFac@1"); httpwebrequestFunction._HttpWebRequestFunction = "DownloadRequest"; httpwebrequestFunction._create = coding.getCreate(); httpwebrequestFunction._nonce = coding.getNonce(httpwebrequestFunction._FileName); string documentType = "FE"; if (httpwebrequestFunction._FileName.Contains("NC")) { documentType = "NC"; } else { if (httpwebrequestFunction._FileName.Contains("ND")) { documentType = "ND"; } } switch (documentType) { case "NC": { httpwebrequestFunction._documentType = "NC"; break; } case "ND": { httpwebrequestFunction._documentType = "ND"; break; } case "FV": { httpwebrequestFunction._documentType = "FV"; break; } default: { httpwebrequestFunction._documentType = "FE"; break; } } httpwebrequestFunction._documentPrefix = httpwebrequestFunction._FileName.Substring(0, 4); httpwebrequestFunction._documentNumber = httpwebrequestFunction._FileName; httpwebrequestFunction._resourceType = "SIGNED_XML"; httpWebSend xmlsend = new httpWebSend(); httpwebrequestFunction._soapEnviado = xmlsend.getSoapEnvio(httpwebrequestFunction); return(httpwebrequestFunction); }
private void actualizarlogReporteDian(string v, HttpsWebRequestsFunction httpwebrequestFunction, string factura) { throw new NotImplementedException(); }
private HttpsWebRequestsFunction PdfFactura(string factura) { HttpsWebRequestsFunction httpwebrequestFunction = new HttpsWebRequestsFunction(); string estado = string.Empty; ICollection <InformacionDian> ICInformacionDian = new List <InformacionDian>(); ICInformacionDian = LeerInformacionDian(factura); if (ICInformacionDian.Count > 0) { foreach (var item in ICInformacionDian) { httpwebrequestFunction._Numdoc = item.INDI_NUMDOC_V2; httpwebrequestFunction._FileName = item.INDI_NUMDOC_V2; httpwebrequestFunction._FacturaXml = item.INDI_XMLENV_CB; httpwebrequestFunction = maquetarSoapFactura(httpwebrequestFunction); bool continuar = true; int intentos = 0; //console.Ih("Enviar Factura "); while (continuar) { httpwebrequestFunction = EnviarFactura(httpwebrequestFunction); if (httpwebrequestFunction._httpWebResponseXml.Contains("Error interno")) { intentos++; console.CRed(); console.Ih("Intentos de Envío : " + intentos); //console.Ih(httpwebrequestFunction._httpWebResponseXml); System.Threading.Thread.Sleep(2000); } else { httpwebrequestFunction = procesarFacturaXMLRecibido(httpwebrequestFunction); validarDirectorio(item.INDI_NUMDOC_V2); httpwebrequestFunction = Cufe(item.INDI_NUMDOC_V2); continuar = false;//<status> } if (intentos > 4) { string mensaje = string.Empty; mensaje += "No fue posible reportar la factura : "; mensaje += httpwebrequestFunction._FileName; mensaje += "\r\n "; mensaje += "\r\n "; mensaje += "\r\nDescripcion del Error "; mensaje += httpwebrequestFunction._httpWebResponseXml; mensaje += "\r\n "; mensaje += "\r\n "; mensaje += "\r\n === > Informacion de la Factura < ==="; mensaje += "\r\nFecha Crea : " + item.INDI_FECCREA_TS; mensaje += "\r\nId Carvajal : " + item.INDI_IDCARVAJAL_V2; mensaje += "\r\nValidacion : " + item.INDI_VALIDACION_CL; mensaje += "\r\nEmail : " + item.INDI_EMAIL_V2; mensaje += "\r\nXML Enviado : " + item.INDI_XMLENV_CB; console.Ih("No fue posible enviar la factura"); //SendEmail("No fue posible enviar la factura", mensaje, "*****@*****.**", "*****@*****.**", "*****@*****.**"); continuar = false;//<status> } } } } return(httpwebrequestFunction); }