Tcl
Tcl
Aruba Fatturazione Elettronica Get Zip by Filename
See more Aruba Fatturazione Examples
Returns an invoice with all of its notifications in Zip format (e.g. IT01879020517_abcde.xml.p7m).Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Implements the following CURL command:
# curl -X GET https://ws.fatturazioneelettronica.aruba.it/services/invoice/in/getZipByFilename?filename=IT01879020517_jtlk1.xml.p7m \
# -H "Accept: application/json" \
# -H "Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE="
# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code
# Adds the "Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=" header.
CkHttp_put_AuthToken $http "NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE="
CkHttp_SetRequestHeader $http "Accept" "application/json"
set bdZip [new_CkBinData]
set success [CkHttp_QuickGetBd $http "https://ws.fatturazioneelettronica.aruba.it/services/invoice/in/getZipByFilename?filename=IT01879020517_jtlk1.xml.p7m" $bdZip]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkBinData $bdZip
exit
}
set respStatusCode [CkHttp_get_LastStatus $http]
puts "response status code = $respStatusCode"
if {$respStatusCode != 200} then {
# If it failed, the response body will not contain the .zip file data.
# It will likely contain an error message.
puts [CkBinData_getString $bdZip utf-8]
puts "Failed."
delete_CkHttp $http
delete_CkBinData $bdZip
exit
}
# Open the zip and extract the .p7m
set zip [new_CkZip]
set success [CkZip_OpenBd $zip $bdZip]
if {$success == 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkHttp $http
delete_CkBinData $bdZip
delete_CkZip $zip
exit
}
# If desired, we can unzip to the filesystem..
set numUnzipped [CkZip_Unzip $zip "c:/mySignedInvoices"]
if {$numUnzipped < 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkHttp $http
delete_CkBinData $bdZip
delete_CkZip $zip
exit
}
# Alternatively, we can unzip into memory..
set entry [new_CkZipEntry]
set success [CkZip_EntryAt $zip 0 $entry]
if {$success == 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkHttp $http
delete_CkBinData $bdZip
delete_CkZip $zip
delete_CkZipEntry $entry
exit
}
set bdP7m [new_CkBinData]
set success [CkZipEntry_UnzipToBd $entry $bdP7m]
if {$success == 0} then {
puts [CkZipEntry_lastErrorText $entry]
delete_CkHttp $http
delete_CkBinData $bdZip
delete_CkZip $zip
delete_CkZipEntry $entry
delete_CkBinData $bdP7m
exit
}
# Verify the signature and extract the XML from the p7m
# If the signature verification is successful, the contents of bdP7m are unwrapped and what
# remains is the original signed document..
set crypt [new_CkCrypt2]
set success [CkCrypt2_OpaqueVerifyBd $crypt $bdP7m]
if {$success == 0} then {
puts [CkCrypt2_lastErrorText $crypt]
delete_CkHttp $http
delete_CkBinData $bdZip
delete_CkZip $zip
delete_CkZipEntry $entry
delete_CkBinData $bdP7m
delete_CkCrypt2 $crypt
exit
}
puts "The signature was verified."
# The bdp7m now contains the XML that was originally signed.
puts "Original XML:"
puts [CkBinData_getString $bdP7m utf-8]
delete_CkHttp $http
delete_CkBinData $bdZip
delete_CkZip $zip
delete_CkZipEntry $entry
delete_CkBinData $bdP7m
delete_CkCrypt2 $crypt