Ver Mensaje Individual
  #517  
Antiguo 27-04-2021
aar1 aar1 is offline
Registrado
 
Registrado: abr 2021
Posts: 5
Reputación: 0
aar1 Va por buen camino
Cita:
Empezado por joselugrk Ver Mensaje
Hola Galaxian, me podrías ayudar con Chilkat. Estoy utilizando la librería Chilkat para generar el XML de TicketBAI y firmarlo. Pero no sé como has realizado la compresión, envío y recepción de la respuesta. Me podrías ayudar y indicarme los pasos. Aunque utilizo VB6 para el desarrollo no he encontrado ningún foro a excepción de este que trate el tema de TickectBAI. Y por cierto, me está ayudando mucho.

Saludos y muchas gracias por todo,
Joselu
Hola joselugrk.

Para realizar la conexión del envío debes utilizar ChilkatSocket, este es un ejemplo en VB6 (Bizkaia):

Código Delphi [-]
Dim socket As New ChilkatSocket
success = socket.SetSslClientCertPfx("tu certificado.fpx", "contraseña del certificado")
success = socket.Connect("pruesarrerak.bizkaia.eus", 443, True, 5000)

Para comprimir y realizar el envío utiliza ChilkatRest y ChilkatStringBuilder:

Código Delphi [-]
Dim rest As New ChilkatRest
success = rest.UseConnection(socket, True)

rest.AddHeader "Accept-Encoding", "gzip"
rest.AddHeader "Content-Encoding", "gzip"
rest.AddHeader "Content-Length", filesize
rest.AddHeader "Content-Type", "application/octet-stream"
rest.AddHeader "eus-bizkaia-n3-version", "1.0"
rest.AddHeader "eus-bizkaia-n3-content-type", "application/xml"
rest.AddHeader "eus-bizkaia-n3-data", cadenajson

Dim dat As String

Dim stringBuilder As New ChilkatStringBuilder
success = stringBuilder.LoadFile("archivo XML a enviar", "utf-8")

dat = stringBuilder.GetAsString()

success = rest.SendReqStringBody("POST", "/N3B4000M/aurkezpena", dat)

No hace falta comprimir el archivo antes de enviarlo, ChilkatRest lo comprime y lo envía.

Para leer la cabecera de la respuesta:

Código Delphi [-]
success = rest.ReadResponseHeader()
dat = rest.ResponseHeader()

Para leer el archivo comprimido incluido en el body de la respuesta:

Código Delphi [-]
Dim aux_bin As New ChilkatBinData

aux_bin.AppendBinary (rest.ReadRespBodyBinary())
aux_bin.WriteFile "nombre del archivo comprimido donde se guarda la respuesta"
Dim gzip As New ChilkatGzip
success = gzip.UncompressFile("nombre del archivo comprimido donde se guarda la respuesta", "nombre del archivo XML descomprimido")

No he incluido las verificaciones de la variable success para no extender el código.

Espero que te sirva de ayuda.

Un saludo.

Última edición por Neftali [Germán.Estévez] fecha: 27-04-2021 a las 11:51:29. Razón: Añadir TAG's al mensaje para el código
Responder Con Cita