Cita:
Empezado por joselugrk
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.