Ver Mensaje Individual
  #194 (permalink)  
Antiguo 22/09/2010, 13:50
scorpionsdd
 
Fecha de Ingreso: septiembre-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Factura electroncia sat mexico

Cita:
Iniciado por aksuesipn Ver Mensaje
Disculpa que me intrometa pero creo que puedo ayudarte.

el archivo lo obtienes de la pagina del SAT [URL="http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_15565.html"]http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_15565.html[/URL]
de aqui tienes que bajar los dos archivos uno cadenaoriginal_2_0.xslt y utilerias.xslt

una vez que tienes estos archivos los agregas a tu solucion.

y despues ocupas la clase XslCompiledTransform para la obtencion de la cadena original, pero recureda que la cadena original tiene que estar expresada en UTF8

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)


como complemento existen dos maneras de realizar este proceso, me refiero a en linea y desconectado.

en linea no necesitas nada mas que tener el archivo cadenaoriginal_2_0.XSLT y dentro de este mismo se estan inlcuyendo las referencias a los demas archivos que se ocupan.
y desconectado aqui tendrias que obtener todos los archivos que el SAT ocupa para la obtencion de la cadena original y reemplazar las direcciones del archivo cadenaoriginal_2_0 por la locacion original de los archivos.
hola gracias por tu ayuda, estoy viendo tu codigo y deja ver si estoy en lo correcto, en la siguientes lineas deberia de quedar algo asi:

transformer.Load(New XPathDocument("C:\Documents and Settings\Administrador\Mis documentos\VS.NET\FacturacionElectronica.Net\Docs\ XLST\cadenaoriginal_2_0.XLST"))

y

transformer.Transform(New XPathDocument(("C:\Documents and Settings\Administrador\Mis documentos\VS.NET\FacturacionElectronica.Net\Docs\ facturas\factura.Xml"), Nothing, strwriter)

y luego a esta variable: encodedBytes, es la q debo de tomar como selllo digital?

saludos