Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Aruba Fatturazione Elettronica Get Zip by FilenameReturns an invoice with all of its notifications in Zip format (e.g. IT01879020517_abcde.xml.p7m). For more information, see https://fatturazioneelettronica.aruba.it/apidoc/docs_EN.html#_getzipbyfilename
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int -- 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. EXEC sp_OASetProperty @http, 'AuthToken', 'NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=' EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Accept', 'application/json' DECLARE @bdZip int -- Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.BinData', @bdZip OUT EXEC sp_OAMethod @http, 'QuickGetBd', @success OUT, 'https://ws.fatturazioneelettronica.aruba.it/services/invoice/in/getZipByFilename?filename=IT01879020517_jtlk1.xml.p7m', @bdZip IF @success = 0 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip RETURN END DECLARE @respStatusCode int EXEC sp_OAGetProperty @http, 'LastStatus', @respStatusCode OUT PRINT 'response status code = ' + @respStatusCode IF @respStatusCode <> 200 BEGIN -- If it failed, the response body will not contain the .zip file data. -- It will likely contain an error message. EXEC sp_OAMethod @bdZip, 'GetString', @sTmp0 OUT, 'utf-8' PRINT @sTmp0 PRINT 'Failed.' EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip RETURN END -- Open the zip and extract the .p7m DECLARE @zip int -- Use "Chilkat_9_5_0.Zip" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Zip', @zip OUT EXEC sp_OAMethod @zip, 'OpenBd', @success OUT, @bdZip IF @success = 0 BEGIN EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip EXEC @hr = sp_OADestroy @zip RETURN END -- If desired, we can unzip to the filesystem.. DECLARE @numUnzipped int EXEC sp_OAMethod @zip, 'Unzip', @numUnzipped OUT, 'c:/mySignedInvoices' IF @numUnzipped < 0 BEGIN EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip EXEC @hr = sp_OADestroy @zip RETURN END -- Alternatively, we can unzip into memory.. DECLARE @entry int EXEC sp_OAMethod @zip, 'GetEntryByIndex', @entry OUT, 0 EXEC sp_OAGetProperty @zip, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 = 0 BEGIN EXEC sp_OAGetProperty @zip, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip EXEC @hr = sp_OADestroy @zip RETURN END DECLARE @bdP7m int -- Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.BinData', @bdP7m OUT EXEC sp_OAMethod @entry, 'UnzipToBd', @success OUT, @bdP7m IF @success = 0 BEGIN EXEC sp_OAGetProperty @entry, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip EXEC @hr = sp_OADestroy @zip EXEC @hr = sp_OADestroy @bdP7m RETURN END EXEC @hr = sp_OADestroy @entry -- 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.. DECLARE @crypt int -- Use "Chilkat_9_5_0.Crypt2" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Crypt2', @crypt OUT EXEC sp_OAMethod @crypt, 'OpaqueVerifyBd', @success OUT, @bdP7m IF @success = 0 BEGIN EXEC sp_OAGetProperty @crypt, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip EXEC @hr = sp_OADestroy @zip EXEC @hr = sp_OADestroy @bdP7m EXEC @hr = sp_OADestroy @crypt RETURN END PRINT 'The signature was verified.' -- The bdp7m now contains the XML that was originally signed. PRINT 'Original XML:' EXEC sp_OAMethod @bdP7m, 'GetString', @sTmp0 OUT, 'utf-8' PRINT @sTmp0 EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @bdZip EXEC @hr = sp_OADestroy @zip EXEC @hr = sp_OADestroy @bdP7m EXEC @hr = sp_OADestroy @crypt END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.