Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Webservice descarga masiva SAT (mexico) (https://www.clubdelphi.com/foros/showthread.php?t=96155)

pgranados 12-03-2023 00:42:56

Webservice descarga masiva SAT (mexico)
 
Buen día, alguien ha consumido el webservice que proporciona el SAT para descarga masiva de cfdi en Delphi o en un cliente como SOAPUI o PostMan? si alguien lo ha hecho y tiene un request de autenticación que este correcto me lo puede compartir por favor? utilizando el request de ejemplo de la documentación del SAT no obtengo conexión, y utilizando el request publicado por https://developers.sw.com.mx/knowled...uthenticacion/

obtengo respuesta pero es negativa, no menciona nada mas que: "An error occurred when verifying security for the message."

saludos

mRoman 14-03-2023 17:40:12

Pues en el mismo link q colocaste, viene un comentario que dice que tiene q ver con la hora...

pgranados 14-03-2023 18:07:22

Ya pude autenticarme, estaba cifrando mal uno de los nodos, gracias por la respuesta.

dani36652 22-03-2023 20:08:55

Cita:

Empezado por pgranados (Mensaje 550745)
Ya pude autenticarme, estaba cifrando mal uno de los nodos, gracias por la respuesta.

Amigo pgranados... Tendrás algún ejemplo de código para poder consumir el web service de descarga masiva de CFDI del sat con Delphi desde la autenticacion hasta la descarga por favor? ocurre que soy novato en el tema. Sin embargo quisiera aprender con algún ejemplo.
Muchas gracias y saludos

pgranados 22-03-2023 20:36:37

Cita:

Empezado por dani36652 (Mensaje 550807)
Amigo pgranados... Tendrás algún ejemplo de código para poder consumir el web service de descarga masiva de CFDI del sat con Delphi desde la autenticación hasta la descarga por favor? ocurre que soy novato en el tema. Sin embargo quisiera aprender con algún ejemplo.
Muchas gracias y saludos

Acá viene realmente toda la información explicada. https://developers.sw.com.mx/knowled...ga-masiva-sat/

Para poder ayudarte necesito que me digas en que tienes duda y con gusto te apoyo. Saludos.

Edit: Ellos tienen un proyecto, aunque este en otro lenguaje y los métodos para calcular los valores son totalmente diferentes, te ayuda a saber si el valor que obtienes es correcto o no

dani36652 22-03-2023 21:33:13

Cita:

Empezado por pgranados (Mensaje 550809)
Acá viene realmente toda la información explicada. https://developers.sw.com.mx/knowled...ga-masiva-sat/

Para poder ayudarte necesito que me digas en que tienes duda y con gusto te apoyo. Saludos.

Edit: Ellos tienen un proyecto, aunque este en otro lenguaje y los métodos para calcular los valores son totalmente diferentes, te ayuda a saber si el valor que obtienes es correcto o no

Mi duda es mas que nada la siguiente:
En el ejemplo del link que me acabas de compartir que por cierto, se agradece...
A la hora de asignar valor a la parte de "SignatureValue" del XML se hace uso de este código
Código:

public string Sign(string sourceData, X509Certificate2 certificate)
        {
            byte[] data = GetBytes(sourceData);
            byte[] signature = null;

            using (RSA rsaCryptoServiceProvider = certificate.GetRSAPrivateKey())
            {
                signature = rsaCryptoServiceProvider.SignData(data, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1);
            }
            return System.Convert.ToBase64String(signature);
        }

Lo que quisiera hacer es escribir el homólogo pero en Delphi Muchas gracias.
PD. estoy en el paso 1 que es la autenticacion

pgranados 22-03-2023 23:19:10

Cita:

Empezado por dani36652 (Mensaje 550810)
Mi duda es mas que nada la siguiente:
En el ejemplo del link que me acabas de compartir que por cierto, se agradece...
A la hora de asignar valor a la parte de "SignatureValue" del XML se hace uso de este código
Código:

public string Sign(string sourceData, X509Certificate2 certificate)
        {
            byte[] data = GetBytes(sourceData);
            byte[] signature = null;

            using (RSA rsaCryptoServiceProvider = certificate.GetRSAPrivateKey())
            {
                signature = rsaCryptoServiceProvider.SignData(data, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1);
            }
            return System.Convert.ToBase64String(signature);
        }

Lo que quisiera hacer es escribir el homólogo pero en Delphi Muchas gracias.
PD. estoy en el paso 1 que es la autenticacion


Necesitas tomar todo el nodo que viene en la pagina y pasarlo a un .txt y luego con ayuda del openssl debes de ejecutar algo así:

Código Delphi [-]
'dgst -sha1 -out "'+DestinoFirma+'" -sign "'+FielPem+'" "'+SignatureValue+'"';

Donde:
DestinoFirma: es el archivo resultante de la dgst en formato .bin
FielPem: es la key en .Pem
SignatureValue: es el .txt del nodo exportado


Despues el archivo .bin debes de pasarlo a Base64 y es lo que pondrás en el nodo

dani36652 23-03-2023 23:45:13

Cita:

Empezado por pgranados (Mensaje 550811)
Necesitas tomar todo el nodo que viene en la pagina y pasarlo a un .txt y luego con ayuda del openssl debes de ejecutar algo así:

Código Delphi [-]
'dgst -sha1 -out "'+DestinoFirma+'" -sign "'+FielPem+'" "'+SignatureValue+'"';

Donde:
DestinoFirma: es el archivo resultante de la dgst en formato .bin
FielPem: es la key en .Pem
SignatureValue: es el .txt del nodo exportado


Despues el archivo .bin debes de pasarlo a Base64 y es lo que pondrás en el nodo


Intentaré eso amigo muchas gracias.
De igual manera me puse a leer y estudiar mas sobre OpenSSL y saber qué estoy haciendo.
Saludos cordiales

pgranados 23-03-2023 23:48:19

Cita:

Empezado por dani36652 (Mensaje 550818)
Intentaré eso amigo muchas gracias.
De igual manera me puse a leer y estudiar mas sobre OpenSSL y saber qué estoy haciendo.
Saludos cordiales

Claro, cualquier cosa aquí estoy. Saludos.

User_123456_yes 14-05-2023 20:52:07

LLamad al WS de autenticación del SAT
 
Hola,

Estoy tratando de obtener el token de autenticación utilizando postman.
Veo que hay usuarios que comentan que hay un desfase de hora al informar los campos <u:Created> y <u:Expires>.

Alguien ha conseguido obtener el token utilizando postman o soapUi?
Afectaría en algún modo si estoy lanzando la petición desde España? (UTC del PC puede tener algo que ver?)

Gracias!


La franja horaria es GMT +2. Ahora son las 02:22:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi