Foros del Web » Programación para mayores de 30 ;) » .NET »

Factura electroncia sat mexico

Estas en el tema de Factura electroncia sat mexico en el foro de .NET en Foros del Web. Me sale el siguiente error de mi proyecto ya compilado en windows XP, en windows 7 no tiene pex: object reference not set to an ...

  #271 (permalink)  
Antiguo 17/11/2010, 14:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 47
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Me sale el siguiente error de mi proyecto ya compilado en windows XP, en windows 7 no tiene pex:

object reference not set to an instance of an object

Este error ocurre en la linea de la asignación de bytesFirmados.

Alguien sabe que onda con esto?.
De hecho tube que instanciar lrsa y bytesFirmados y sigue marcando el error en XP, el proyecto lo estoy compilando en Win7
Gracias

Dim pLlavePrivadaenBytes As Byte() = System.IO.File.ReadAllBytes(_rutaKey)
Dim lrsa As RSACryptoServiceProvider = New RSACryptoServiceProvider

lrsa = clsSeguridad.DecodeEncryptedPrivateKeyInfo(pLlaveP rivadaenBytes, IsecStr)

Dim hasher As MD5CryptoServiceProvider = New MD5CryptoServiceProvider()
Dim bytesFirmados() As Byte = New Byte() {}
bytesFirmados = lrsa.SignData(System.Text.Encoding.UTF8.GetBytes(c adenaOriginal), hasher)

Dim sellodigital As String = Convert.ToBase64String(bytesFirmados)
  #272 (permalink)  
Antiguo 17/11/2010, 18:30
 
Fecha de Ingreso: octubre-2005
Mensajes: 47
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Lo debuge en Windows XP y el error ocurre porque la asignación siguiente es NOTHING

Dim lrsa As RSACryptoServiceProvider = clsSeguridad.DecodeEncryptedPrivateKeyInfo(pLlaveP rivadaenBytes, IsecStr)

Alguien sabe porque?
  #273 (permalink)  
Antiguo 19/11/2010, 01:54
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Sello Digital

Cita:
Iniciado por thebman Ver Mensaje
Pues bien en el post anterior generamos nuestra digestion MD5 en un archivo md5.txt es imoprtante editar el archivo y borrar la parte de MD5(C:\cadena.txt)=
Para que nuestro archivo solo quede con la pura digestion la cual es:
8aa2b617944427353697e694a2e35a07

Bueno ahora tenemos que generar el sello digital apartir de la digestion pero antes de esto tenemos que convertir nuestros archivos .key y .cer a .pem para su correcto procesamiento.

Para hacer esto nos vamos a la aplicacion Openssl y dentro de los certificados que descargamos usaremos solo un archivo .key y la clave privada.

Archivo:
aaa010101aaa_CSD_01.key

Instruccion para generar nuestro archivo .pem:

openssl.exe pkcs8 -inform DER -in aaa010101aaa_CSD_01.key -passin pass:a0123456789 -out aaa010101aaa_CSD_01.key.pem

Una ves ejecutada esta instruccion tendremos nuestro nuevo archivo:

aaa010101aaa_CSD_01.key.pem

El cual usaremos para generar nuestro sello tambien dentro del Openssl

openssl dgst -sign aaa010101aaa_CSD_01.key.pem md5.txt | openssl enc -base64 -A > sello.txt

Y obtendremos el siguiente sello en su respectivo archivo sello.txt:

iIMz487EGyt6zCFjvcFNvHeOKgKMMc5y1py+QJrIvCmWbbxV43 k2xi6Q23p/Wee31vqUzYH0fbO0yBOvkDtiMejjdCOHPzmLvMkzfAzr919j6t bJOiODlgb7bisEdUkrjRrw+FfwQsPldsfHW6gq3K/fFGT6tTB7gqHP6a44ix0=
bman que tal,

me gustaria saber si me pudieras ayudar, tengo problemas con el MD5 no me cuadra =/

al validar me sale

El sello del comprobante presenta problemas:
Comprobante \\Nas200\public disk 2\TEMP1\prueba.xml leido exitosamente

Validando encodingComprobante expresado en UTF-8

Realizando validación del sello con un certificado interno
Certificado usado : 30001000000100000800
El comprobante incluye un certificado codificado

Cadena original:
||2.0|A|62|2010-11-13T16:29:33|00001|2001|ingreso|PAGO EN UNA SOLA EXHIBICION|CONTADO|5000.00|0.00|5000.00|COT531028U 19|Industrias del Sur Poniente, S.A. de C.V.|Parque Nacional|32|32|Herradura|Mexico|Huixquilucan|Estad o de Mexico|Mexico|53780|COBJ830628U11|Jorge Luis Cordero|Parque de Madrid|32|32|Parques de la herradura 3a. Sec.|Mexico|Huixquilucan|Estado de Mexico|Mexico|52786|10.00|PZA|PRODUCTO AA01|100.00|1000.00|20.00|LTS|PRODUCTO AA02|200.00|4000.00|IVA|16.00|800.00||

Digestión MD5 de cadena como HEX:
3377c08a698b10a0fe944fec320ef2cb

El sello del comprobante no es válido

nooooooooooooooooooooooooooooooooooooooooooooooooo oooooooooooooooooooooooooooooooooooooooooooooo =(


cuando la digestión MD5 debería ser esta

DigestionMD5 de cadena como HEX:
91630a088f882976b88373c813e9d686

lo estoy haciendo de la siguente manera.

openssl.exe dgst -md5 -sign DATA.PEM -out MD5F.TXT UTF8.TXT
openssl.exe enc -base64 -in MD5F.TXT -out SELD.TXT

DONDE:
- MD5F.TXT SE GENERA CON DATA.PEM
- UTF8.TXT ES LA CADENA ORIGINAL
- SELD.TXT ES EL SELLO DIGITAL, CUANDO ENVIO EL XML AL VALIDADOR DEL SAT ME REGRESA UNA DIGESTION DEL MD5 DIFERENTE, A LA COMPROBACION LOCAL CON EL COMANDO:

Openssl dgst –md5 utf8.txt que es mi cadena original

Alguna sugerencia? si me pudieras ayudar hermano te lo agradeceria mucho

Saludos.
  #274 (permalink)  
Antiguo 24/11/2010, 02:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola,

Me ha servido mucho este foro para entender el "tedioso" proceso de factura electronica, pero no he podido ver que alguien tenga certeza de que los sellos digitales sean correctos. En la pagina del sat http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_6522.html si se fijan bien la cadena que presentan es diferente a la que viene en el ejemplo de XML para bajar, cambian las mayusculas y los acentos. ¿Alguien ha podido validar el sello digital directamente en la pagina del sat usando los certificados de prueba?

Saludos.
  #275 (permalink)  
Antiguo 25/11/2010, 18:50
Avatar de slalo  
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Que tal a todos hoy mismo me avente las 10 paginas del foro, agradezco a todos sus aportes aunque no soy un experto he logrado crear el xml, pero lo que aun no tengo es el certificado y el sello digital, estoy trabajando en C#. Alguien podría compartir el codigo para generar el sello digital con la disposicion del sha-1 y el rsa y luego pasarle lo de la firma, yo la verdad no le entiendo... Bueno yo les aporto otra opcion de generar el xml, me lo avente a pie y como dicen el validador del sat no reconoce las adendas pero si no las tomamos en cuenta pasa sin problemas, espero les pueda servir...

public void CrearDocumentoXML()
{
XNamespace referencia = "http://www.sat.gob.mx/cfd/2";
XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
string schemaLocation = "http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd ";

XDocument miXML = new XDocument(
new XDeclaration("1.0", "UTF-8", ""),
//new XComment("Creacion de XML"),
new XElement( referencia + "Comprobante",
new XAttribute("serie", Variables.Serie),
new XAttribute("version", "2.0"),
new XAttribute("folio", Variables.Folio),
new XAttribute("fecha", Variables.Fecha),
new XAttribute("sello", Variables.SelloDigital),
new XAttribute("noAprobacion", Variables.noAprobacion),
new XAttribute("anoAprobacion", Variables.anoAprobacion),
new XAttribute("formaDePago", Variables.formaDePago),
new XAttribute("noCertificado", Variables.NoCertificado),
new XAttribute("certificado", Variables.Certificado),
new XAttribute("condicionesDePago", Variables.condicionesDePago),
new XAttribute("subTotal", "2000.00"),
new XAttribute("descuento", "0.00"),
new XAttribute("motivoDescuento", "promocionEspecial"),
new XAttribute("total", "2320.00"),
new XAttribute("metodoDePago", Variables.metodoDePago),
new XAttribute("tipoDeComprobante", Variables.tipoDeComprobante),
new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
new XAttribute(xsi + "schemaLocation", schemaLocation),

new XElement(referencia + "Emisor",
new XAttribute("rfc", Variables.RFCEmisor),
new XAttribute("nombre", Variables.NombreEmisor),
new XElement(referencia + "DomicilioFiscal",
new XAttribute("calle", Variables.CalleEmisor),
new XAttribute("noExterior", Variables.NoExteriorEmisor),
new XAttribute("colonia", Variables.ColoniaEmisor),
new XAttribute("localidad", Variables.LocalidadEmisor),
new XAttribute("referencia", Variables.ReferenciaEmisor),
new XAttribute("municipio", Variables.MunDelegacionEmisor),
new XAttribute("estado", Variables.EstadoEmisor),
new XAttribute("pais", Variables.PaisEmisor),
new XAttribute("codigoPostal", Variables.CPEmisor)),
new XElement( referencia + "ExpedidoEn",
new XAttribute("calle", Variables.CalleEmisor),
new XAttribute("noExterior", Variables.NoExteriorEmisor),
new XAttribute("colonia", Variables.ColoniaEmisor),
new XAttribute("localidad", Variables.LocalidadEmisor),
new XAttribute("referencia", "LaReferencia"),
new XAttribute("municipio", Variables.MunDelegacionEmisor),
new XAttribute("estado", Variables.EstadoEmisor),
new XAttribute("pais", Variables.PaisEmisor),
new XAttribute("codigoPostal", Variables.CPEmisor))),

new XElement(referencia + "Receptor",
new XAttribute("rfc", Variables.RFCReceptor),
new XAttribute("nombre", Variables.NombreReceptor),
new XElement( referencia + "Domicilio",
new XAttribute("calle", Variables.CalleReceptor),
new XAttribute("noExterior", Variables.NoExteriorReceptor),
new XAttribute("colonia", Variables.ColoniaReceptor),
new XAttribute("localidad", Variables.LocalidadReceptor),
new XAttribute("referencia", Variables.ReferenciaReceptor),
new XAttribute("municipio", Variables.MunDelegacionReceptor),
new XAttribute("estado", Variables.EstadoReceptor),
new XAttribute("pais", Variables.PaisReceptor),
new XAttribute("codigoPostal", Variables.CPReceptor))),

new XElement(referencia + "Conceptos",
new XElement(referencia + "Concepto",
new XAttribute("cantidad", "1.00"),
new XAttribute("unidad", "Servicio"),
new XAttribute("noIdentificacion", "01"),
new XAttribute("descripcion", "AlimentosSusalia"),
new XAttribute("valorUnitario", "2000.00"),
new XAttribute("importe", "2000.00"))),

new XElement(referencia + "Impuestos",
new XAttribute("totalImpuestosRetenidos", "320.00"),
new XAttribute("totalImpuestosTrasladados", "320.00"),
new XElement(referencia + "Retenciones",
new XElement( referencia +"Retencion",
new XAttribute("impuesto", "IVA"),
new XAttribute("importe", "320.00"))),
new XElement(referencia + "Traslados",
new XElement(referencia + "Traslado",
new XAttribute("impuesto", "IVA"),
new XAttribute("tasa", "16.00"),
new XAttribute("importe", "320.00")))),

new XElement(referencia + "Complemento"),
new XElement(referencia + "Addenda"/*,
new XAttribute("Credito",Variables.Credito),
new XAttribute("Consignado",Variables.Consignado),
new XAttribute("NoProveedor", Variables.NoProveedor),
new XAttribute("NoOrden", Variables.NoOrden),
new XAttribute("Observaciones", Variables.Observaciones),
new XAttribute("Vendedor", Variables.Vendedor)*/)));

miXML.Save(@"c:\Factura-" + Variables.RFCEmisor + ".xml");
}


Claro esto solo es una clase y como funciona mi logica para crear la factura es:
1 capturas los datos
2 los guardas en la BD
3 generas cadena original
4 generas sello digital
5 generas xml

el xml lo generas jalando todos los datos guardados en la base de datos...
Bueno esa es mi concepcion.
Me podrian ayudar con lo del sello digital....
  #276 (permalink)  
Antiguo 26/11/2010, 01:38
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Factura electroncia sat mexico

Para Killer_benner: Respecto del tiempo de proceso, considero que eso depende de la maquina donde ejecutes la aplicacion y del codigo con que haya sido generado, por ponerte un ejemplo, en un sistema iSeries de IBM, ejecutando con codigo C, la generacion del puro sello se tardaba como una hora para unas 8,000-10,000 facturas,
eso seria un promedio de 130-160 sellos x minuto, como 2.5 sellos x segundo.

En el caso de usar openssl, habia antes q hacer una "emulacion de sistema operativo" y el tiempo era de al menos el doble, x lo que tuvo q ser mejorado.

Claro que la generacion del sello agregara tiempo de proceso a tu facturacion, si es de alto volumen deben ver que lenguaje y equipo usan.

Saludos
  #277 (permalink)  
Antiguo 26/11/2010, 01:42
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Factura electroncia sat mexico

A ver si alguien me puede apoyar..

1o- Genero XML (sin sellar y sin cadena)
2o- Genero cadena en base a .XSLT del SAT (aplicado al XML del punto anterior
3o- Agrego el sello al XML
En este ultimo punto.. debo forzosamente, abrir nuevamente el archivo .XML del punto uno, modificar el nodo y volver a guardar el archivo????

No habria manera de que en el punto 2, la cadena se genere con el puro "XML cargado en memoria"?? esto es .. sin grabar en disco duro (punto1), evitando asi el punto 1 y unicamente grabar en un punto 4.- Grabado final de XML con sello

Si fuera asi, podrian mostrar algo de codigo para lograrlo (aplicacion XSLT sobre un XML grabado en memoria, sin leer de disco duro), algo como:
antes:
transformer.Transform(New XPathDocument("C:\\FACTURA.xml"), Nothing, strwriter) 'URI del documento de entrada, ,Clase XmlWriter a la que se desea enviar el resultado.

despues:
transformer.Transform(New XPathDocument(OBJXMLENMEMORIA, Nothing, strwriter)

*Solucionado:
Respondiendome, ya lo solucione:
"El siguiente ejemplo utiliza un objeto tr de tipo XslCompiledTransform
con el documento de estilos ya cargado, para transformar un documento XML
almacenado en el objeto docorigen de tipo XmlDocument:"
tr.Transform (docorigen, "destino.xml");

De manera q simplemente haciendo referencia al objeto XML armado en memoria, sin grabar aun en disco duro, es posible obtener la cadena del XSLT

Última edición por wwwmaster; 26/11/2010 a las 02:15
  #278 (permalink)  
Antiguo 27/11/2010, 18:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por wwwmaster Ver Mensaje
Para Killer_benner: Respecto del tiempo de proceso, considero que eso depende de la maquina donde ejecutes la aplicacion y del codigo con que haya sido generado, por ponerte un ejemplo, en un sistema iSeries de IBM, ejecutando con codigo C, la generacion del puro sello se tardaba como una hora para unas 8,000-10,000 facturas,
eso seria un promedio de 130-160 sellos x minuto, como 2.5 sellos x segundo.

En el caso de usar openssl, habia antes q hacer una "emulacion de sistema operativo" y el tiempo era de al menos el doble, x lo que tuvo q ser mejorado.

Claro que la generacion del sello agregara tiempo de proceso a tu facturacion, si es de alto volumen deben ver que lenguaje y equipo usan.

Saludos
No entiendo porque me mencionas la maquina si mi aplicación jala de poca madre (ya me imagino la programación) pero en fin, ya termine mi sistema, tengo la auditoria ante el SAT la primera semana de Diciembre, y bueno, les comento que fue lo que me detuvo mes ½ para que no se traben en esa parte (ya que mucha gente aclara sus dudas en estos foros y ya que aclararon su duda no te ayudan hasta te cobran jajajajaj), también quiero agradecer a la gente que le pedí ayuda y nunca me la dieron (la educación es uno de mis principales principios)

bueno pedi ayuda y no me la dieron pero YO si los ayudo y les paso un gran TIP mis rutinas y todo lo que hacia siempre estuvo bien el problema fue que ingreso y egreso (el campo siguiente después de la fecha) en la cadena debe de ir con minúsculas, NO MAYUSCULAS, por eso me decía el validador que mi archivo fue leído exitosamente pero que no era valido porque? por las P@?%&$+*¡? MAYUSCULAS, como encontré ese error? ni me pregunten

Saludos.
  #279 (permalink)  
Antiguo 27/11/2010, 22:30
Avatar de OSRO  
Fecha de Ingreso: octubre-2004
Mensajes: 114
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por killer_beaner Ver Mensaje
No entiendo porque me mencionas la maquina si mi aplicación jala de poca madre (ya me imagino la programación) pero en fin, ya termine mi sistema, tengo la auditoria ante el SAT la primera semana de Diciembre, y bueno, les comento que fue lo que me detuvo mes ½ para que no se traben en esa parte (ya que mucha gente aclara sus dudas en estos foros y ya que aclararon su duda no te ayudan hasta te cobran jajajajaj), también quiero agradecer a la gente que le pedí ayuda y nunca me la dieron (la educación es uno de mis principales principios)

bueno pedi ayuda y no me la dieron pero YO si los ayudo y les paso un gran TIP mis rutinas y todo lo que hacia siempre estuvo bien el problema fue que ingreso y egreso (el campo siguiente después de la fecha) en la cadena debe de ir con minúsculas, NO MAYUSCULAS, por eso me decía el validador que mi archivo fue leído exitosamente pero que no era valido porque? por las P@?%&$+*¡? MAYUSCULAS, como encontré ese error? ni me pregunten

Saludos.

Despues de terminar de hacer tu aplicacion necesitas llevar tu codigo o programa al SAT?????? esa no me la sabia, podrias ilustrarme por favor?, estoy desarrollando un complemento para una pagina ASP .NET que generaria las FD, despues de que termine (si es que termino =S) que tengo que hacer? y tengo que hacelo yo o la empresa que va a utilizar la aplicacion ??.


Salu2

  #280 (permalink)  
Antiguo 28/11/2010, 12:06
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por OSRO Ver Mensaje
Despues de terminar de hacer tu aplicacion necesitas llevar tu codigo o programa al SAT?????? esa no me la sabia, podrias ilustrarme por favor?, estoy desarrollando un complemento para una pagina ASP .NET que generaria las FD, despues de que termine (si es que termino =S) que tengo que hacer? y tengo que hacelo yo o la empresa que va a utilizar la aplicacion ??.


Salu2

OSRO que tal,

No de hecho si tu le estas desarrollando la aplicación a la empresa ellos nada mas tienen que descargar sus folios de la FIEL y listo a facturar por sus propios medios (claro siempre y cuando ya valide) en este caso nosotros ya le vendimos a 3 empresas el sistema y te menciono (no se como le informen al SAT que ya facturan electrónicamente)

Para nosotros es diferente, como queremos entrar como proveedor todos los lineamientos nos los están dando los contadores (ellos conocen al pie de la letra el DOF), los requisitos cambian mucho y te puedo comentar que primero tienes que estar dado de alta como persona MORAL =( tambien ingresas una carta diciendo que quieres dar el servicio y te comprometes a bla bla bla, (yo no la redacte), también te piden mucha infraestructura así como tu plan de contingencia, diagramas donde expliques como son todos tus procesos, tienes que darles un usuario nada mas para pura lectura al SAT de tu BD para que puedan hacer consultas, también tienes que haber ya emitido facturas por tus propios medios (ya te imaginaras nos auto vendimos unos sistemas y todo esto lo llevan los contadores) y un sin fin de cosas, estoy buscando los links de todo esto en la pagina del SAT para pasártelos (los tengo impresos ya que los contadores descargaron toda esta información) o si gustas te puedo poner en contacto con ellos pero créeme cualquier contador te puede aclarar todo esto y mas ahora que no les queda de otra mas que regularizarse lol =)
  #281 (permalink)  
Antiguo 28/11/2010, 12:28
Avatar de OSRO  
Fecha de Ingreso: octubre-2004
Mensajes: 114
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por killer_beaner Ver Mensaje
OSRO que tal,

No de hecho si tu le estas desarrollando la aplicación a la empresa ellos nada mas tienen que descargar sus folios de la FIEL y listo a facturar por sus propios medios (claro siempre y cuando ya valide) en este caso nosotros ya le vendimos a 3 empresas el sistema y te menciono (no se como le informen al SAT que ya facturan electrónicamente)

Para nosotros es diferente, como queremos entrar como proveedor todos los lineamientos nos los están dando los contadores (ellos conocen al pie de la letra el DOF), los requisitos cambian mucho y te puedo comentar que primero tienes que estar dado de alta como persona MORAL =( tambien ingresas una carta diciendo que quieres dar el servicio y te comprometes a bla bla bla, (yo no la redacte), también te piden mucha infraestructura así como tu plan de contingencia, diagramas donde expliques como son todos tus procesos, tienes que darles un usuario nada mas para pura lectura al SAT de tu BD para que puedan hacer consultas, también tienes que haber ya emitido facturas por tus propios medios (ya te imaginaras nos auto vendimos unos sistemas y todo esto lo llevan los contadores) y un sin fin de cosas, estoy buscando los links de todo esto en la pagina del SAT para pasártelos (los tengo impresos ya que los contadores descargaron toda esta información) o si gustas te puedo poner en contacto con ellos pero créeme cualquier contador te puede aclarar todo esto y mas ahora que no les queda de otra mas que regularizarse lol =)
Muchas gracias killer_beaner ya me habia espantado =P, por el momento solo desarrollaremos complementos para sistemas de otras empresas, pero es bueno saber que se necesita para prestar el servicio, en una de esas es buen negocio .

Salu2
  #282 (permalink)  
Antiguo 29/11/2010, 02:54
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola,
Perdona por mi español, pois soy de Brasil.
Me gusta mucho su código, puedes me enviar el código del método leecertificado?

Gracias,

Jason
[QUOTE=Mike_Rodriguez_J;3615541]Avances - Espero les sirva, yo necesito ayuda con la generación del XML,
a traves de openssl ya genero todo, sin embargo para limpiar el codigo decidi hacerlo con las clases y me resulta mucho mas facil, solo que ahora estoy atorado con la obtención del xml desde la clase CFD

Cita:
Iniciado por Mike_Rodriguez_J Ver Mensaje
Que tal buena tarde.

Ayuda con Visual Studio 2010

Alguien programando CFD con la generación de clases del archivo

QUOTE]

OJO, este codigo ya genera un archivo xml, el tema que tengo es el de los name spaces, no me esta arrojando lo mismo, alguna sugerencia:

Do While RecXML.EOF <> True
Dim FacturaProcesada As Integer
FacturaProcesada = RecXML.Fields("Invoice").Value

Dim CFD As Comprobante.Comprobante
CFD = New Comprobante.Comprobante

CFD.version = "2.0"
CFD.serie = "A"
CFD.folio = "1"
CFD.noCertificado = LeeCertificado("SerialNumber")
CFD.certificado = LeeCertificado("Base64")
CFD.subTotal = ComprobanteSubTotal(FacturaProcesada)
CFD.descuento = ComprobanteDescuento(FacturaProcesada)
CFD.motivoDescuento = "Descuento Cliente"
CFD.total = RecXML.Fields("Total").Value
CFD.metodoDePago = "Depósito en Cuenta, Tarjeta de Credito o Debito"
CFD.tipoDeComprobante = 1 'ComprobanteTipo(FacturaProcesada)

CFD.Emisor = New Comprobante.ComprobanteEmisor 'Aqui esta el tema de como crear el comprobante emisor dentro del CFD.Emisor (Asi es con los demas nodos)
CFD.Emisor.rfc = F_Emisor("RFC")
CFD.Emisor.nombre = F_Emisor("name")

CFD.Emisor.DomicilioFiscal = New Comprobante.t_UbicacionFiscal

CFD.Emisor.DomicilioFiscal.calle = DomicilioFiscalC("calle")
CFD.Emisor.DomicilioFiscal.noExterior = DomicilioFiscalC("noExterior")
CFD.Emisor.DomicilioFiscal.noInterior = DomicilioFiscalC("noInterior")
CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("Colonia")
CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("localidad")
CFD.Emisor.DomicilioFiscal.referencia = DomicilioFiscalC("referencia")
CFD.Emisor.DomicilioFiscal.municipio = DomicilioFiscalC("municipio")
CFD.Emisor.DomicilioFiscal.estado = DomicilioFiscalC("estado")
CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("pais")
CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("CodigoPostal")

CFD.Receptor = New Comprobante.ComprobanteReceptor
CFD.Receptor.rfc = "RfcCliente"
CFD.Receptor.nombre = "NombreCliente"

CFD.Receptor.Domicilio = New Comprobante.t_Ubicacion

CFD.Receptor.Domicilio.calle = "CalleCliente"
CFD.Receptor.Domicilio.noExterior = "noExterior"
'Conceptos


'OJO aqui esta el tema de como utilizar la parte de conceptos

Dim concepto As New Comprobante.ComprobanteConcepto
CFD.Conceptos = Array.CreateInstance(concepto.GetType, 10)
CFD.Conceptos(0) = New Comprobante.ComprobanteConcepto
CFD.Conceptos(0).cantidad = 1

'al solucionar lo anterior, se que me falta impuesto y lo demas pero me quise
'enfocar a generar el xml con esos datos para visualizarlo y hago este codigo, '
pero me sigue saliendo el (XMLNS)<?xml version="1.0" encoding="utf-8"?>
'<Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
xmlns:schemalocation="http://www.sat.gob.mx/cfd/2 'http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0"

Dim xmlNameSpace = New XmlSerializerNamespaces()

xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance")
xmlNameSpace.Add("schemalocation", "http://www.sat.gob.mx/cfd/2" & " " & "http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd")

Dim objStreamWriter As New StreamWriter("C:\CFD.xml", False)

Dim prueba As New XmlSerializerNamespaces
prueba.Add(String.Empty, String.Empty)
Dim x1 As New XmlSerializer(CFD.GetType, "http://www.sat.gob.mx/cfd/2")

x1.Serialize(objStreamWriter, CFD, xmlNameSpace)
objStreamWriter.Close()

Toda ayuda sera agradecida.
Estoy programando en visual studio 2010 en windows.forms
  #283 (permalink)  
Antiguo 30/11/2010, 10:46
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por Robert_Sin Ver Mensaje
Que tal.. es la primera vez que post.

Es para agradecer todas las aportaciones que hicieron... actualmente ya resolvi la facturacion electronica en .NET por medio de una libreria

Crypto Sys

Me ayudo con la parte de incluir el certificado en el xml y generacion del sello digital en base a la cadena original basada en el xml.

Solo me falta la parte de agregar al XML el sello digital... alguien sabe como puedo hacerlo???... gracias
Hola,
¿Podrias compartir como incluiste el certificado en el xml?
Saluods y gracias.
  #284 (permalink)  
Antiguo 30/11/2010, 11:25
 
Fecha de Ingreso: noviembre-2010
Ubicación: en Nuevo Leon Mexico
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por AntonioMatias Ver Mensaje
Me sale el siguiente error de mi proyecto ya compilado en windows XP, en windows 7 no tiene pex:

object reference not set to an instance of an object

Este error ocurre en la linea de la asignación de bytesFirmados.

Alguien sabe que onda con esto?.
De hecho tube que instanciar lrsa y bytesFirmados y sigue marcando el error en XP, el proyecto lo estoy compilando en Win7
Gracias

Dim pLlavePrivadaenBytes As Byte() = System.IO.File.ReadAllBytes(_rutaKey)
Dim lrsa As RSACryptoServiceProvider = New RSACryptoServiceProvider

lrsa = clsSeguridad.DecodeEncryptedPrivateKeyInfo(pLlaveP rivadaenBytes, IsecStr)

Dim hasher As MD5CryptoServiceProvider = New MD5CryptoServiceProvider()
Dim bytesFirmados() As Byte = New Byte() {}
bytesFirmados = lrsa.SignData(System.Text.Encoding.UTF8.GetBytes(c adenaOriginal), hasher)

Dim sellodigital As String = Convert.ToBase64String(bytesFirmados)
Saludos Antonio, soy desarrollador en vb.net, estoy n.l. mexico y tambien estoy buscando la solucion a la facturacion electronica, he visto este codigo pero aun no lo he probado, ¿copiaste el codigo de aqui de la pagina?.

Saludos y espero que nos podamos ayudar.
  #285 (permalink)  
Antiguo 30/11/2010, 12:02
 
Fecha de Ingreso: noviembre-2010
Ubicación: en Nuevo Leon Mexico
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Saludos a todos, estoy llevando a cabo el desarrollo de la factura electronica con vb.net y estoy utilizando una libreria del chilkat, el codigo es mas sencillo del que utilizan aqui para el sello digital y haciendo pruebas con la cadena original:

||2.0|A|12|2010-06-16T12:03:07|1|2009|ingreso|Una sola exhibición|17000|0|19720|ISP900909Q88|Industrias del Sur Poniente, S.A. de C.V.|Alvaro Obregón|37|3|Col. Roma Norte|México|Cuauhtémoc|Distrito Federal|México|06700|Pino Suarez|23|Centro|Nuevo Léon|Monterrey|Nuevo Léon|México|95460|CAUR390312S87|Rosa María Calderón Uriegas|Topochico|52|Jardines del Valle|Monterrey|Monterrey|Nuevo León|México|95465|2|pieza|PC- GENERICA|5000|10000|1|KGS|PC- AVANZADA|7000|7000|IVA|16.00|2720|2720||

me da el siguiente sello:

u78F8ggFsKqZbgL7dtR1J25tkCMQqqPybpU84KvxXYw98UkSiZ SxQL6BekYN6t9UutK/fIUPoWajpgedMzpypEAdHfSrX/4N0zkTgjuhSjEb8pJC5F5H1T5aPsWOl5tprYQ1y/EWwRYXZxoE9Y1oQqJ3nVx09D6FL0+cmLEhprM=

¿Alguien ha usado o esta utilizando esta libreria? si es asi me pueden de decir si el sello es correcto.

Saludos.
  #286 (permalink)  
Antiguo 30/11/2010, 12:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

[QUOTE=Mike_Rodriguez_J;3615541]Avances - Espero les sirva, yo necesito ayuda con la generación del XML,
a traves de openssl ya genero todo, sin embargo para limpiar el codigo decidi hacerlo con las clases y me resulta mucho mas facil, solo que ahora estoy atorado con la obtención del xml desde la clase CFD

Cita:
Iniciado por Mike_Rodriguez_J Ver Mensaje
Que tal buena tarde.

Ayuda con Visual Studio 2010

Alguien programando CFD con la generación de clases del archivo

QUOTE]

OJO, este codigo ya genera un archivo xml, el tema que tengo es el de los name spaces, no me esta arrojando lo mismo, alguna sugerencia:

Do While RecXML.EOF <> True
Dim FacturaProcesada As Integer
FacturaProcesada = RecXML.Fields("Invoice").Value

Dim CFD As Comprobante.Comprobante
CFD = New Comprobante.Comprobante

CFD.version = "2.0"
CFD.serie = "A"
CFD.folio = "1"
CFD.noCertificado = LeeCertificado("SerialNumber")
CFD.certificado = LeeCertificado("Base64")
CFD.subTotal = ComprobanteSubTotal(FacturaProcesada)
CFD.descuento = ComprobanteDescuento(FacturaProcesada)
CFD.motivoDescuento = "Descuento Cliente"
CFD.total = RecXML.Fields("Total").Value
CFD.metodoDePago = "Depósito en Cuenta, Tarjeta de Credito o Debito"
CFD.tipoDeComprobante = 1 'ComprobanteTipo(FacturaProcesada)

CFD.Emisor = New Comprobante.ComprobanteEmisor 'Aqui esta el tema de como crear el comprobante emisor dentro del CFD.Emisor (Asi es con los demas nodos)
CFD.Emisor.rfc = F_Emisor("RFC")
CFD.Emisor.nombre = F_Emisor("name")

CFD.Emisor.DomicilioFiscal = New Comprobante.t_UbicacionFiscal

CFD.Emisor.DomicilioFiscal.calle = DomicilioFiscalC("calle")
CFD.Emisor.DomicilioFiscal.noExterior = DomicilioFiscalC("noExterior")
CFD.Emisor.DomicilioFiscal.noInterior = DomicilioFiscalC("noInterior")
CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("Colonia")
CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("localidad")
CFD.Emisor.DomicilioFiscal.referencia = DomicilioFiscalC("referencia")
CFD.Emisor.DomicilioFiscal.municipio = DomicilioFiscalC("municipio")
CFD.Emisor.DomicilioFiscal.estado = DomicilioFiscalC("estado")
CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("pais")
CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("CodigoPostal")

CFD.Receptor = New Comprobante.ComprobanteReceptor
CFD.Receptor.rfc = "RfcCliente"
CFD.Receptor.nombre = "NombreCliente"

CFD.Receptor.Domicilio = New Comprobante.t_Ubicacion

CFD.Receptor.Domicilio.calle = "CalleCliente"
CFD.Receptor.Domicilio.noExterior = "noExterior"
'Conceptos


'OJO aqui esta el tema de como utilizar la parte de conceptos

Dim concepto As New Comprobante.ComprobanteConcepto
CFD.Conceptos = Array.CreateInstance(concepto.GetType, 10)
CFD.Conceptos(0) = New Comprobante.ComprobanteConcepto
CFD.Conceptos(0).cantidad = 1

'al solucionar lo anterior, se que me falta impuesto y lo demas pero me quise
'enfocar a generar el xml con esos datos para visualizarlo y hago este codigo, '
pero me sigue saliendo el (XMLNS)<?xml version="1.0" encoding="utf-8"?>
'<Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
xmlns:schemalocation="http://www.sat.gob.mx/cfd/2 'http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0"

Dim xmlNameSpace = New XmlSerializerNamespaces()

xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance")
xmlNameSpace.Add("schemalocation", "http://www.sat.gob.mx/cfd/2" & " " & "http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd")

Dim objStreamWriter As New StreamWriter("C:\CFD.xml", False)

Dim prueba As New XmlSerializerNamespaces
prueba.Add(String.Empty, String.Empty)
Dim x1 As New XmlSerializer(CFD.GetType, "http://www.sat.gob.mx/cfd/2")

x1.Serialize(objStreamWriter, CFD, xmlNameSpace)
objStreamWriter.Close()

Toda ayuda sera agradecida.
Estoy programando en visual studio 2010 en windows.forms



Hola oye mike como pudiste instanciar los items para los conceptos tengo algo así pero no se genera mi xml
ComprobanteConceptoCuentaPredial predial = new ComprobanteConceptoCuentaPredial();
t_InformacionAduanera[] infaduanera = new t_InformacionAduanera[1];
ComprobanteConceptoParte[] conParte = new ComprobanteConceptoParte[1];
conParte[0] = new ComprobanteConceptoParte();
conParte[0].cantidad = 412.52M;
conParte[0].descripcion = "descripcion";
infaduanera[0] = new t_InformacionAduanera();
infaduanera[0].aduana="aduana";
predial.numero="1";

comprobanteConcepto2[0].Items = new object[3];
comprobanteConcepto2[0].Items[0] = predial;
comprobanteConcepto2[0].Items[1] = infaduanera;
comprobanteConcepto2[0].Items[2] = conParte;
  #287 (permalink)  
Antiguo 02/12/2010, 13:57
Avatar de slalo  
Fecha de Ingreso: noviembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por polacp86 Ver Mensaje
Hola alguien experto en xml que me pueda ayudar??????

Mi problema es el siguiente:

Ya genero mi factura en un archivo xml, ahora el punto es que en la empresa que trabajo cada cliente utiliza una addenda diferente por lo que decidi crear la addenda en otro archivo y al final del proceso la copio en el archivo de la factura, el problema es que cuando la copio a la etiqueta de la addenda le aparece un atributo xmlns="" y no se como quitarselo o evitar que aparezca.

<?xml version="1.0" encoding="utf-8"?>
<Comprobante>
<Emisor>
<DomicilioFiscal />
</Emisor>
<Receptor>
<Domicilio/>
</Receptor>
<Conceptos>
<Concepto />
</Conceptos>
<Impuestos>
<Traslados>
<Traslado />
</Traslados>
</Impuestos>
<Addenda xmlns="">
...
</Addenda>
</Comprobante>


no se si ya te lo hayan resulto, yo tenia el mismo problema, pero este radica en una variable que declaraste, si quieres escribe el codigo y te digo donde....
  #288 (permalink)  
Antiguo 04/12/2010, 23:10
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por wwwmaster Ver Mensaje
A ver si alguien me puede apoyar..

1o- Genero XML (sin sellar y sin cadena)
2o- Genero cadena en base a .XSLT del SAT (aplicado al XML del punto anterior
3o- Agrego el sello al XML
En este ultimo punto.. debo forzosamente, abrir nuevamente el archivo .XML del punto uno, modificar el nodo y volver a guardar el archivo????

No habria manera de que en el punto 2, la cadena se genere con el puro "XML cargado en memoria"?? esto es .. sin grabar en disco duro (punto1), evitando asi el punto 1 y unicamente grabar en un punto 4.- Grabado final de XML con sello

Si fuera asi, podrian mostrar algo de codigo para lograrlo (aplicacion XSLT sobre un XML grabado en memoria, sin leer de disco duro), algo como:
antes:
transformer.Transform(New XPathDocument("C:\\FACTURA.xml"), Nothing, strwriter) 'URI del documento de entrada, ,Clase XmlWriter a la que se desea enviar el resultado.

despues:
transformer.Transform(New XPathDocument(OBJXMLENMEMORIA, Nothing, strwriter)

*Solucionado:
Respondiendome, ya lo solucione:
"El siguiente ejemplo utiliza un objeto tr de tipo XslCompiledTransform
con el documento de estilos ya cargado, para transformar un documento XML
almacenado en el objeto docorigen de tipo XmlDocument:"
tr.Transform (docorigen, "destino.xml");

De manera q simplemente haciendo referencia al objeto XML armado en memoria, sin grabar aun en disco duro, es posible obtener la cadena del XSLT
Es muy interesante todo eso.
¿Podrias ampliar un poco mas la solución?
La verdad es que estoy muy verde con esto del xml. ¿generas el xml desde cero con xmlDocument?

Última edición por Oscargf; 05/12/2010 a las 00:27
  #289 (permalink)  
Antiguo 07/12/2010, 00:50
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Factura electroncia sat mexico

Si, el XML se genera desde cero, con xml document, el codigo me quedo algo incomodo, aun no lo optimizo, asi:

Dim Doc As System.Xml.XmlDocument
Dim version As System.Xml.XmlDeclaration
version = Doc.CreateXmlDeclaration("1.0", "utf-8", "")
version.Encoding = "utf-8"
Doc.PreserveWhitespace = True
Doc.AppendChild(version)

Me.xmlns = "http://www.sat.gob.mx/cfd/2"
NdCom = Doc.CreateNode(XmlNodeType.Element, "Comprobante", Me.xmlns)

Dim NdReceptor As XmlNode
NdReceptor = Doc.CreateNode(XmlNodeType.Element, "Receptor", Me.xmlns)


Dim atributoRECEP1 As XmlAttribute = Doc.CreateAttribute("rfc") : atributoRECEP1.Value = Receptor.rfc
Dim atributoRECEP2 As XmlAttribute = Doc.CreateAttribute("nombre") : atributoRECEP2.Value = Receptor.nombre

NdReceptor.Attributes.Append(atributoRECEP1)
NdReceptor.Attributes.Append(atributoRECEP2)

etc, etc.
  #290 (permalink)  
Antiguo 08/12/2010, 18:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hay una forma más fácil de general el XML. Yo uso la siguiente rutina...
Código:
using (FileStream fs = File.Create(rutaFacturas))
            {
                doc = new System.Xml.XmlDocument();
                doc.LoadXml(dsFD.GetXml());
                element = doc.DocumentElement;
                nodo = element.FirstChild;
                nodo.Attributes["fecha"].Value = string.Format("{0:yyyy-MM-ddTHH:mm:ss}", Convert.ToDateTime(nodo.Attributes["fecha"].Value));

                datos = Encoding.UTF8.GetBytes("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                fs.Write(datos, 0, datos.Length);
                datos = Encoding.UTF8.GetBytes(nodo.OuterXml);
                fs.Write(datos, 0, datos.Length);
                fs.Flush();
            }
  #291 (permalink)  
Antiguo 09/12/2010, 19:54
 
Fecha de Ingreso: junio-2010
Mensajes: 23
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Factura electroncia sat mexico

Pues la verdad no me sale.
No soy capaz de poner los atributos del nodo raiz: xmlns:xsi xsi:shemalocation...

sin embargo, con xmltextwriter me salia bien

para no liar mas este hilo, y como me parece un tema muy interesante, abri uno nuevo:

http://www.forosdelweb.com/f29/crear-xml-para-factura-electronica-867285/#post3666255

A ver si me pueden ayudar

Saludos

Oscar
  #292 (permalink)  
Antiguo 10/12/2010, 14:05
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola a todos, realmente me ayudó mucho leer este foro, asi que tomando el códgo y consejos que publicaron en esta sección, hice algunas adaptacions y por fin puedo sellar una factura en c# sin necesidad del openssl. este es el código que usé:

Código:
public static string ObtenerSelloDigital(string cadenaOriginal, string rutaLlavePrivada,string password)
        {
            SecureString passwordSeguro = new SecureString();
            passwordSeguro.Clear();
            foreach (char c in password.ToCharArray())
                passwordSeguro.AppendChar(c);
            byte[] llavePrivadaBytes = System.IO.File.ReadAllBytes(rutaLlavePrivada);
            RSACryptoServiceProvider rsa = Opensslkey.DecodeEncryptedPrivateKeyInfo(llavePrivadaBytes, passwordSeguro);
            MD5CryptoServiceProvider hasher = new MD5CryptoServiceProvider();
            byte[] bytesFirmados = rsa.SignData(System.Text.Encoding.UTF8.GetBytes(cadenaOriginal), hasher);
            string selloDigital = Convert.ToBase64String(bytesFirmados);
            return selloDigital;
        }
después utilicé la clase opensslkey.cs (publicada anteriormente) y modifiqué el método DecodeEncryptedPrivateKeyInfo para que aceptara dos argumentos, y dentro de el lo que hice fue sustituir esto:

Código:
SecureString secpswd = GetSecPswd("Enter password for Encrypted PKCS #8 ==>");
por esto:

Código:
SecureString secpswd = password;
                    pkcs8 = DecryptPBDK2(encryptedpkcs8, salt, IV, secpswd, iterations);
y finalmente para evitar conflictos si en algun otro lado de la clase se mandaba a llamar este método, lo que hice fue crear uno que tomara un solo argumento, similar al original:

Código:
public static RSACryptoServiceProvider DecodeEncryptedPrivateKeyInfo(byte[] encpkcs8)
            {
                 SecureString secpswd = GetSecPswd("Enter password for Encrypted PKCS #8 ==>");
                 return DecodeEncryptedPrivateKeyInfo(encpkcs8,secpswd);
            }
Y con esto queda, espero que les sirva, saludos
  #293 (permalink)  
Antiguo 13/12/2010, 15:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

que tal buenas Tardes.

he querido validar el sello del un CFDI que el sat publicó en su pagina:
http://www.sat.gob.mx/sitio_internet/asistencia_contribuyente/principiantes/comprobantes_fiscales/66_18779.html

con el siguiente codigo:

//Cargo la llave
FileStream llavePrivada = new FileStream(@"C:\aaa010101aaa_CSD_01.key", FileMode.Open);

byte[] arrpk = new byte[llavePrivada.Length];
llavePrivada.Read(arrpk, 0, arrpk.Length);

llavePrivada.Close();
llavePrivada.Dispose();

SecureString spwd = new SecureString();
foreach (byte b in "a0123456789")
{
char ch = (char)b;
spwd.AppendChar(ch);
}
spwd.MakeReadOnly();

RSACryptoServiceProvider orsa = OpenSSLKey.DecodeEncryptedPrivateKeyInfo(arrpk, spwd);

byte[] arrcadenaoriginal = Encoding.UTF8.GetBytes("||3.0|2010-03-06T20:38:12|ingreso|PAGO EN UNA SOLA EXHIBICION|488.50|488.50|PPL961114GZ1|PHARMA PLUS SA DE CV|AV. RIO MIXCOAC|No. 140|ACACIAS|BENITO JUAREZ|MEXICO, D.F.|Mexico|03240|AV. UNIVERSIDAD|1858|OXTOPULCO|DISTRITO FEDERAL|Mexico|03910|PEPJ8001019Q8|JUAN PEREZ PEREZ|AV UNIVERSIDAD|16 EDF 3|DPTO 101|COPILCO UNIVERSIDAD|COYOACAN|DISTRITO FEDERAL|Mexico|04360|1.0|CAPSULAS|VIBRAMICINA 100MG 10|244.00|244.00|1.0|BOTELLA|CLORUTO 500M|137.93|137.93|1.0|TABLETAS|SEDEPRON 250MG 10|84.50|84.50|IVA|0.00|0.00|IVA|16.00|22.07||");
byte[] arrSello = orsa.SignData(arrcadenaoriginal, "SHA1");
string sSello = Convert.ToBase64String(arrSello);

y el sello es muy diferente al que viene en el XML de ejemplo del SAT

Alguien sabe como debo de generar el sello para el 2011 ?
  #294 (permalink)  
Antiguo 15/12/2010, 21:13
 
Fecha de Ingreso: diciembre-2010
Ubicación: Guanajuato
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Se actualiza el algoritmo de digestión de MD5 a SHA-1.
Para el receptor del CFD, unicamente el RFC el obligatorio. El nombre y el domicilio son opcionales.

Última edición por octavius1184; 15/12/2010 a las 21:18
  #295 (permalink)  
Antiguo 16/12/2010, 00:05
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Factura electroncia sat mexico

octavius: entonces en 2010 se genera el hash con MD5 y a partir de facturas de enero se genera con SHA1???? o es forzoso que las facturas diciembre 2010 ya sean con SHA1?

Última edición por wwwmaster; 16/12/2010 a las 00:12
  #296 (permalink)  
Antiguo 16/12/2010, 10:06
 
Fecha de Ingreso: diciembre-2010
Ubicación: Guanajuato
Mensajes: 2
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por wwwmaster Ver Mensaje
octavius: entonces en 2010 se genera el hash con MD5 y a partir de facturas de enero se genera con SHA1???? o es forzoso que las facturas diciembre 2010 ya sean con SHA1?

Si empiezas a facturar en diciembre del 2010 sigues usando el md5 y si empiezas en enero del 2011 tendrias que usar el sha1.
  #297 (permalink)  
Antiguo 17/12/2010, 02:45
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 4 meses
Puntos: 37
Respuesta: Factura electroncia sat mexico

Alguien puede comentarme.. si ya se han usado algunas facturas impresas en Diciembre 2010, es posible a pesar de ello iniciar con las facturas electronicas (digamos en la 2a quincena de 2010)????

Esto es, que el reporte mensual unicamente contendria aquellos CFD generados de diciembre (no las de papel).
  #298 (permalink)  
Antiguo 17/12/2010, 13:09
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola, quisiera versi alguien me puede ayudar, estoy con esto de la facturacion electronica pero estoy teniendo un pequeño problema
Convierto mis archivos cer y key al formato pem con openssl

c:\openssl\bin\openssl.exe pkcs8 -inform DER -in ..\1012091519S.key -passin pass:a123456789 -out ..\PrivateKEY.PEM

c:\openssl\bin\openssl.exe x509 -inform DER -outform PEM -in ..\1012091519S.cer -pubkey > ..\PublicKEY.PEM

hasta ahi todo esta bien, despues intento obtener mi archivo p12 con la siguiente
instruccion con los archivos pem

c:\openssl\bin\openssl.exe pkcs12 -export -in ..\PublicKEY.pem -inkey ..\privateKEY.pem -passin pass:a123456789 -out ..\mycert.p12

pero al finalizar el comando me indica
lo siguiente
Loading 'Screen' into ramdon State Done
Enter Export Password:

y ahi ya no se que hacer o que tengo que poner esto me ha ocurrido con los certificados que solicite de mi empresa

Alguien que tenga una idea
  #299 (permalink)  
Antiguo 20/12/2010, 17:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por annmry Ver Mensaje
Hola, quisiera versi alguien me puede ayudar, estoy con esto de la facturacion electronica pero estoy teniendo un pequeño problema
Convierto mis archivos cer y key al formato pem con openssl

c:\openssl\bin\openssl.exe pkcs8 -inform DER -in ..\1012091519S.key -passin pass:a123456789 -out ..\PrivateKEY.PEM

c:\openssl\bin\openssl.exe x509 -inform DER -outform PEM -in ..\1012091519S.cer -pubkey > ..\PublicKEY.PEM

hasta ahi todo esta bien, despues intento obtener mi archivo p12 con la siguiente
instruccion con los archivos pem

c:\openssl\bin\openssl.exe pkcs12 -export -in ..\PublicKEY.pem -inkey ..\privateKEY.pem -passin pass:a123456789 -out ..\mycert.p12

pero al finalizar el comando me indica
lo siguiente
Loading 'Screen' into ramdon State Done
Enter Export Password:

y ahi ya no se que hacer o que tengo que poner esto me ha ocurrido con los certificados que solicite de mi empresa

Alguien que tenga una idea
Con el código que publiqúe en el post anterior puedes hacer estos pasos directamente con C# sin necesidad del openssl. Cuando mandas a llamar el metodo le envías como parámetros la ruta junto con el nombre del certificado y la llave privada, además del password.

Saludos
  #300 (permalink)  
Antiguo 21/12/2010, 10:50
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por ccsh23 Ver Mensaje
Con el código que publiqúe en el post anterior puedes hacer estos pasos directamente con C# sin necesidad del openssl. Cuando mandas a llamar el metodo le envías como parámetros la ruta junto con el nombre del certificado y la llave privada, además del password.

Saludos
Gracias por tu respuesta, voy a intentarlo si tengo algun problema podria molestarte?

Etiquetas: factura, mexico, sat
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 39 personas




La zona horaria es GMT -6. Ahora son las 04:43.