Ver Mensaje Individual
  #198 (permalink)  
Antiguo 22/09/2010, 17:49
Avatar de hegaes
hegaes
 
Fecha de Ingreso: octubre-2008
Mensajes: 17
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Factura electroncia sat mexico

Hola nuevamente scopionssdd, por lo que veo en tu código, tú creas la cadena original.

Cita:
DateTime Fecha = DateTime.Now ;
string Fechas = "";
//GENERO MI CADENA ORIGINAL LEYENDO LOS DATOS DE EMISOR, RECEPTOR Y DETALLE DE FACTURA
Fechas = Fecha.Date.ToString("yyyy-MM-dd") + "T" + Fecha.ToString("HH:mm:ss");
strCadenaOriginal = "||A|1|" + Fechas + "|1|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|Monterrey|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|10|Caja|Vasos decorados|20|200|1|pieza|Charola metálica|150|150|IVA|52.5||";
Pues bien, con codigo que te proporciono aksuesipn ya no es necesario que tu escribas la cadena original ya que el archivo .xslt te da como resultado la cadena original, la cual se crea en base a tu factura, es decir se lee tu factura y se extraen los datos necesarios de la factura para crear la cadena original.

Cita:
Dim transformer As XslCompiledTransform
Dim utf8 As Encoding = Encoding.UTF8
Dim encodedBytes As Byte()

Dim strwriter As System.IO.StringWriter = New System.IO.StringWriter()

'creamos la clase transfomer
transformer = New XslCompiledTransform()

'cargamos el xslt (archivo de transformacion) a la clase
transformer.Load(New XPathDocument(" DIRECCION DE TU ARCHIVO XSLT"))

'procedemos a realizar la transfomración del archivo xml en base al xslt y lo almacenamos en un string que regresaremos

transformer.Transform(New XPathDocument("ARCHIVO XML DEL CUAL QUIERES OBTENER LA CADENA"), Nothing, strwriter)

'convertimos la cadena a utf8 y ya esta lista para ser utilizada en el hash
encodedBytes = utf8.GetBytes(strwriter.ToString)
y la variable encodeBytes es la que debes codificar.

Espero haber aclarado tu duda.

Saludos!!