Página 1 de 2
Valor para el atributo noCertificado
Publicado: Jue Jun 07, 2012 1:11 am
por mike08
Hola a todos, estoy empezando esto de la fact electronica;
Me parecio correcto poner el tema aqui.
De donde obtengo el valor para el atributo noCertificado en elemento Comprobante
,menciona k es un num de 20 digitos.
De antemano muchas gracias.
Re: Valor para el atributo noCertificado
Publicado: Jue Jun 07, 2012 8:32 am
por Dado
Se obtiene usando OpenSSL
OpenSSL X509 -inform DER -in certificado.cer -serial
Re: Valor para el atributo noCertificado
Publicado: Jue Jun 07, 2012 10:34 am
por mike08
DADO escribió:Se obtiene usando OpenSSL
OpenSSL X509 -inform DER -in certificado.cer -serial
Gracias DADO.
De hecho si había visto esa instrucción así: openssl x509 -in AAAA010101AAA.cer.pem -serial -noout
Pero me regresa un numero de mas de 20 caracteres, (y el documento del SAT version=3.2 me dice que es un numero de 20 posiciones)
Y he visto ejemplos de comprobantes en el atributo noCertificado y son de longitud 20.
Comprobante.noCertificado
Atributo requerido para expresar el número de
serie del certificado de sello digital que ampara al
comprobante, de acuerdo al acuse
correspondiente a 20 posiciones otorgado por el
sistema del SAT.
Que estoy haciendo mal?
De antemano muchas gracias.
Re: Valor para el atributo noCertificado
Publicado: Jue Jun 07, 2012 10:41 am
por Dado
Es porque te lo esta regresando en hexadecimal, pero es facil la conversion, mira pon atencion :
si te da un resultado como :
30 30 30 30 32 31 34 36 38 etc
Debes quitarle el "3" y te queda
0 0 0 0 2 1 4 6 8 etc
Porque? porque el caracter ASCI #34 es igual al caracter "4"
Re: Valor para el atributo noCertificado
Publicado: Jue Jun 07, 2012 10:54 am
por mike08
DADO escribió:Es porque te lo esta regresando en hexadecimal, pero es facil la conversion, mira pon atencion :
si te da un resultado como :
30 30 30 30 32 31 34 36 38 etc
Debes quitarle el "3" y te queda
0 0 0 0 2 1 4 6 8 etc
Porque? porque el caracter ASCI #34 es igual al caracter "4"
DADO, Muchas gracias por tu ayuda y por la explicación.
Voy a intentarlo como mencionas.
Re: Valor para el atributo noCertificado
Publicado: Lun Jun 11, 2012 12:34 pm
por mike08
mike08 escribió:DADO escribió:Es porque te lo esta regresando en hexadecimal, pero es facil la conversion, mira pon atencion :
si te da un resultado como :
30 30 30 30 32 31 34 36 38 etc
Debes quitarle el "3" y te queda
0 0 0 0 2 1 4 6 8 etc
Porque? porque el caracter ASCI #34 es igual al caracter "4"
DADO, Muchas gracias por tu ayuda y por la explicación.
Voy a intentarlo como mencionas.
DADO muchas gracias, es correcto lo que mencionas.
Re: Valor para el atributo noCertificado
Publicado: Jue Ago 09, 2012 5:01 pm
por mdorantes
No hay alguna otra forma de obtener el valor "nocertificado" sin utilizar openssl??...
si alguien sabe??? en c#
Re: Valor para el atributo noCertificado
Publicado: Vie Ago 10, 2012 4:02 pm
por mike08
mdorantes escribió:No hay alguna otra forma de obtener el valor "nocertificado" sin utilizar openssl??...
si alguien sabe??? en c#
Puedes abrir el Certificado de Sello Digital.cer(doble click en windows) se abre una ventana.
En pestaña Detalles en valor Número de serie. De ahí lo puedes tomar, solo convertirlo a base decimal.
Re: Valor para el atributo noCertificado
Publicado: Mié Jun 25, 2014 2:00 am
por manuelin01
No consigo que funcione! :S
Con php tengo el siguiente codigo:
$salida = system("openssl X509 -inform DER -in ruta -serial", $retval); //ruta es la ruta al archivo .cer
echo '
</pre>
<hr />Ultima linea de la salida: ' . $ultima_linea . '
<hr />Valor de retorno: ' . $retval.'<hr />';
y obtengo:
Ultima linea de la salida:
Valor de retorno: 1
Alguien me puede ayudar, para saber que hago mal???
Gracias!!!
Re: Valor para el atributo noCertificado
Publicado: Mié Jun 25, 2014 8:41 am
por fortiz
Valor de retorno: 1
Fallo la ejecucion del openssl ...
No mencionas como obtienes $ultima_linea ....
Checa la funcion openssl_x509_parse de PHP ...
$paso = openssl_x509_parse($cert); // $cert es el certificado en formato PEM
$serial = convierte($paso['serialNumber']);
El codigo fuente de la funcion convierte lo puedes ver aqui
http://www.lacorona.com.mx/fortiz/sat/cfdcvali.phps