Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


CARTA PORTE V3.1

ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03


.

POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

La factura esta basada en XML, independiente del lenguaje de programacion todos debemos saber acerca de esta tecnologia
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 5:56 pm

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por poseidon24 »

Alguien ha usado JAVA para la implementación de este Web Service?

Yo lo intente, pero al final dejamos un puente usando un webservice en .NET, y ahora usamos un webservice que invoca a otros webservices XD

El problema que tenemos ahora, son los resultados que nos arrojan los WS del SAT, no hemos obtenido una cancelacion ni una recepcion exitosa.

En java estamos aplicando el SHA1 para obtener el hash de la cadena original. Pero este método regresa 40 caracteres y el SAT dice que el hash que de debe enviar es de solo 20 de longitud, alguno de ustedes tiene un metodo en JAVA para hacer el digest de la cadena original con SHA-1 y que solamente regrese 20 caracteres?

Nota: ya intentamos haciendo un substring tomando los primeros 20 caracteres, pero en realidad no creo q sea la solución.
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por Dado »

poseidon24 escribió:Alguien ha usado JAVA para la implementación de este Web Service?

Yo lo intente, pero al final dejamos un puente usando un webservice en .NET, y ahora usamos un webservice que invoca a otros webservices XD

El problema que tenemos ahora, son los resultados que nos arrojan los WS del SAT, no hemos obtenido una cancelacion ni una recepcion exitosa.

En java estamos aplicando el SHA1 para obtener el hash de la cadena original. Pero este método regresa 40 caracteres y el SAT dice que el hash que de debe enviar es de solo 20 de longitud, alguno de ustedes tiene un metodo en JAVA para hacer el digest de la cadena original con SHA-1 y que solamente regrese 20 caracteres?

Nota: ya intentamos haciendo un substring tomando los primeros 20 caracteres, pero en realidad no creo q sea la solución.
Por definicion el SHA1 es un digestivo cuyo resultado son 20 BYTES o su equivalente de 160 BITS

Ahora, la REPRESENTACION HEXADECIMAL de un Byte requiere de DOS CARACTERES (del 00 al FF), y por lo tanto la representacion del resultado de SHA1 es de 40 caracteres.

Hay algoritmos "personalizados" que se basan en el SHA1 y toman por ejemplo 1 de cada 3 caracteres haciendo mas dificil el rompimiento de una clave, pero este NO ES EL CASO DEL SAT

como dijeron por ahi...mis dos centavos
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 5:56 pm

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por poseidon24 »

:? Entonces, al web service del SAT se envía el digest con SHA-1 (20 caracteres) o como tu dices la representación en hexadecimal de ese digest (40 caracteres)?

Eso es lo que no nos queda del todo claro. 20 o 40?
Avatar de Usuario
Dado
Mensajes: 15981
Registrado: Mar Jul 06, 2010 7:56 pm

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por Dado »

poseidon24 escribió::? Entonces, al web service del SAT se envía el digest con SHA-1 (20 caracteres) o como tu dices la representación en hexadecimal de ese digest (40 caracteres)?

Eso es lo que no nos queda del todo claro. 20 o 40?
Aver con piedritas y palitos......

El SHA1 son 20 NUMEROS DECIMALES.....VA DE NUEVO....SON 20 NUMEROS DECIMALES que solo pueden tener un valor del 0 al 255, a eso en computacion se le llama BYTE

Ejemplo de SHA1 = (193) (82) (145) (89) (200) (02) (93) (45) (198) (32) (84) (229) (02) (49) (134) (20) (76) (149) (56) (229)
(20 NUMEROS decimales que solo pueden tener un valor del 0 al 255)

OK. los numeros del 0 al 255 se pueden representar matematicamente con una notacion que se llama hexadecimal usando del cero al 9 y las letras A a la F, esto es mas largo de explicar pero cada NUMERO DECIMAL se puede representar con DOS CARACTERES HEXADECIMALES obteniendo lo siguiente*

Ejemplo de SHA1 = (C1) (52) (A4) (4F) (20) (F0) (C3) (32) (45) (19) (23) (2A) (8B) (B2) (90) (28) (8F) (23) (AC) (0C)
(20 NUMEROS hexadecimales que solo pueden tener un valor del 0 al 255)

Ahora si quitas los parentesis y los espacios te queda

Ejemplo de SHA1 = C152A44F20F0C3324519232A8BB290288F23AC0C
(20 NUMEROS hexadecimales que solo pueden tener un valor del 0 al 255 REPRESENTADO CON 40 CARACTERES)


*la conversion decimal<->hexadecimal que se muestra no esta bien calculada, solo es para fines pictograficos
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 5:56 pm

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por poseidon24 »

Buenas Tardes!

Por fin ya obtuvimos todas las respuestas posibles del WS de Recepción del Acuse.

Ahora tenemos problema con el WS de Cancelacion, leyendo este mismo hilo, vi que algunos resolvieron lo del Error 302 -Sello mal formado o invalido, llenando la propiedad Signature.

Hasta ahí bien, pero, con que se llena esa propiedad? El sello de timbrado? Sello del emisor? Se usa una codificación especial?

La invocación a los WS del SAT lo hacemos desde .NET (c#)

Saludos!
poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 5:56 pm

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por poseidon24 »

edifact escribió:A todos o a cualquier guru en la materia:

Hola que tal... estamos en eso precisamente... si utilizamos certificados de LCO y el ejemplo que anexa el SAT, sobre eso estamos haciendo la prueba... por que??

Por que al consumir el WS si funciona!!! aunque el codigo que arroja es el <205 - El UUID NO EXISTE>


¿Por que? Por que no existe asi de facil no existe, pero es el ejemplo del SAT, si existiera en el blob entonces nos daria EXITO <201>


::INTENTAMOS REPRODUCIR EXACTAMENTE EL MISMO EJEMPLO QUE ANEXA EL SAT::
Cuando suceda esto, estamos del otro lado

Proceso:

Ya canonicalizamos <SignedInfo> aplicando Sha1 y tenemos el <Digestvalue> finalmente y estamos seguros que hasta ahi estamos bien.

¿Por que? por que nos da igual al ejemplo del SAT. Goood!

Aqui esta el problema:



Tenemos la idea y hemos probado con varias cosas obtener el <Signaturevalue> y por supuesto al consumir el WS de cancelacion obtenemos <302>

Esto deriva en decir que esta incorrecto el resultado de <Signaturevalue>

Sera que ya tienes la mecanica de calculo para obtener <Signaturevalue> en forma correcta?

Que version de canonicalizacion estas empleando?

En que lenguaje estas desarrollando?

Saludos
Mau
Alguien sabe en que quedo esto? Siempre como se hizo para obtener el SignatureValue ?
macja
Mensajes: 39
Registrado: Jue Ene 20, 2011 9:47 am

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por macja »

poseidon24 escribió:Buenas Tardes!

Por fin ya obtuvimos todas las respuestas posibles del WS de Recepción del Acuse.

Ahora tenemos problema con el WS de Cancelacion, leyendo este mismo hilo, vi que algunos resolvieron lo del Error 302 -Sello mal formado o invalido, llenando la propiedad Signature.

Hasta ahí bien, pero, con que se llena esa propiedad? El sello de timbrado? Sello del emisor? Se usa una codificación especial?

La invocación a los WS del SAT lo hacemos desde .NET (c#)

Saludos!
Tengo problemas para enviar al blobstore del SAT en java , de casualidad no sabes que configuración se hace?
Saludos
internetgdl
Mensajes: 6
Registrado: Mié Ene 26, 2011 11:50 am

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por internetgdl »

Actualmente yo tengo el problema que no puedo cancelar inmediatamente después de que envío un CFDI al SAT; debo de esperar entre 2 y 3 horas para poder cancelarlo y me regrese un acuse de cancelación
apardo
Mensajes: 29
Registrado: Mar May 17, 2011 10:22 am

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por apardo »

Hola,

Alguien tendrá el catalogo de errores que devuelve el sat, o en su defecto me podrían decir que es el error 300

Gracias de antemano
apardo
Mensajes: 29
Registrado: Mar May 17, 2011 10:22 am

Re: POSIBLE METODO DE ENVIO O CANCELACION DE CFDI AL PAC

Mensaje por apardo »

apardo escribió:Hola,

Alguien tendrá el catalogo de errores que devuelve el sat, o en su defecto me podrían decir que es el error 300

Gracias de antemano

ya encontre el catalogo de errores en el anexo 20,anteproyecto anexo 20 y en la siguiente liga de preguntas frecuentes
ftp://ftp2.sat.gob.mx/asistencia_ftp/pu ... recTec.pdf

pero en ninguno viene el error 300


este es la respuesta que recibo

Código: Seleccionar todo

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
- <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <CancelaCFDResponse xmlns="http://cancelacfd.sat.gob.mx">
- <CancelaCFDResult CodEstatus="300" Fecha="2011-06-01T16:39:33.35505" RfcEmisor="ZUN100623663">
- <Signature Id="SelloSAT" xmlns="http://www.w3.org/2000/09/xmldsig#">
- <SignedInfo>
  <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> 
  <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#hmac-sha512" /> 
- <Reference URI="">
- <Transforms>
- <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
  <XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath> 
  </Transform>
  </Transforms>
  <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" /> 
  <DigestValue>9YijncFjuw6u/sdTFND9LpPD4RE/y5p/vZrPtb5lckOga7/cprQR1E+zA/KAYzVtT4muPWTSKYKzONrwAwUy6w==</DigestValue> 
  </Reference>
  </SignedInfo>
  <SignatureValue>hi1DGAll/PQok4ypT/lQd6InbJBhxfIehPCWdoiCpj+fdPhcoJhx/SPya6jIf385m9QggmzfJEQHDqnsimedug==</SignatureValue> 
- <KeyInfo>
  <KeyName>00001088888800000093</KeyName> 
- <KeyValue>
- <RSAKeyValue>
  <Modulus>yxMvUucuS+s3aeWTFZvJrrFWIdes7kIDJmO7DA5DP+ZTapofNt37fgeIHlTUdAVvd/fDKhfiwNSh+vbrNbD58X3UEdQor3ngb6zpjrDjgYsedckPLv6fro4DO0NXLCdALFqhN8ARyX77kYBnvIj1fOSVp401Vc3urLUtiEm16Kle3tOyWhfjgFzdK3oAIXF8oeei/GburWbJnpP+NeGaHVE5bkxLCBp5757nKVonXwzpfpEGuBp204NGkI2/jyA2EH8wyRN4yUvzjT7IJYrHng23klRDlJoRYwa98QQPdQSTpcrlNu8nLhpQdI/zMTLoNF2NiBCkQNuAMacKhnvlVw==</Modulus> 
  <Exponent>AQAB</Exponent> 
  </RSAKeyValue>
  </KeyValue>
  </KeyInfo>
  </Signature>
  </CancelaCFDResult>
  </CancelaCFDResponse>
  </s:Body>
  </s:Envelope>

Nota
Estoy usando el servicio de pruebas
con rfc y certificado de Pruebas


Tambien noto que no viene como "Acuse" no se si sea bueno o malo :P
Cerrado