In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

CURL Ejemplo de uso con AEAT

Foro público de Xailer en español
Avatar de Usuario
XeviCOMAS
Mensajes: 589
Registrado: Sab Mar 12, 2011 8:16 pm

CURL Ejemplo de uso con AEAT

Mensaje por XeviCOMAS »

Respondiendo al hilo del foro Pro.
viewtopic.php?t=14474

Jose, funciona perfecto como bien compartes. Lo he probado y Ok.

Yo hasta hoy lo he utilizado con CreateObject()

Código: Seleccionar todo

METHOD Button1Click( oSender ) CLASS TForm1
   local resolveTimeout := 5000
   local connectTimeout := 5000
   local sendTimeout    := 40000
   local receiveTimeout := 60000

   Local cUrlService, cDataSend, cResponse


      ::oMemo1:Value := ""
      cUrlService    := "https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV2SOAP"
      cDataSend := HB_MemoRead("Request.XML")


      WITH OBJECT CreateObject( "WinHttp.WinHttpRequest.5.1" )
      :SetTimeouts( resolveTimeout, connectTimeout, sendTimeout, receiveTimeout )
      :Open( "POST", cUrlService, .F. )
      // Cabeceras
      :SetRequestHeader( "Content-Type", "text/xml;charset=UTF-8" )

      //En fa prou amb un Certificat "instal·lat" al navegador... en aquest cas, només cal indicar quin certificat agafar, sense sel·leccionar-ne un en concret.
      :SetClientCertificate( "12345678X NOMBRE APELLIDO (R: B12345678)" )

      // Enviar mensaje
      :Send( cDataSend )

      ::oMemo1:Value := cResponse := :ResponseText
      END

      HB_MemoWrit("Response.xml",cResponse)

RETURN Nil

Lo que me facilita de esta manera és que no es necesario el password del certificado.
No se si es posible de la manera que tu has compartido, mediante curl.
Un Saludo,
Xevi.
Responder