|
|
Perl: upload La chiamata usa la funzione upload_single_document passando i parametri di autenticazione, facendo upload di un documento, specificandone i metadati e firmando il documento con la firma digitale precaricata. In più, sono specificati i metadati per la trasmissione via email, fax e postale. Per il dettaglio dei parametri, consulta la funzione upload_single_document use v5.10; use strict; use warnings; use LWP::UserAgent; use HTTP::Request::Common; use JSON::XS qw(decode_json);
my $SERVER_URL
= 'https://docubank.kpnqwest.it/backend/v1.0/public/script/'; my $INTERFACE_CODE = 'INTERFACE_code'; my $INTERFACE_PASSWORD = 'INTERFACE_pass'; my $USER_LOGIN = 'user@acme.it'; my $USER_PASSWORD = 'user_pass'; #my $USER_TOKEN = 'fd8dfdfndfjhv87'; my $ORGANIZATION_CODE = 'TestOrg'; my $DOCUMENT_TYPE = 'Fatture'; my $PATH_TO_FILE = 'path/to/my/file.pdf';
my $user_agent = LWP::UserAgent->new;
my %data = ( 'message_type' => 'UPLOAD_SINGLE_DOCUMENT', 'version' => '1.0', 'authentication.interface_code' => $INTERFACE_CODE, 'authentication.interface_password' => $INTERFACE_PASSWORD, 'authentication.login' => $USER_LOGIN, 'authentication.password' => $USER_PASSWORD, # 'authentication.token' => $USER_TOKEN, 'organization_code' => $ORGANIZATION_CODE, 'document_type' => $DOCUMENT_TYPE, 'metadata.Ragione sociale' => 'Acme Spa', 'metadata.Numero documento' => time(), 'metadata.Data' => '2010-08-11', 'content' => [$PATH_TO_FILE], 'filename' => 'new_filename.pdf', 'mimetype' => 'application/pdf', 'label' => 'Grupo 1', 'sendto.fax_number' => '0245552485552', 'sendto.email' => 'contabilita@acme.it', 'sendto.address_1' => 'Acme Spa', 'sendto.address_2' => 'Ufficio Contabilità', 'sendto.address_3' => 'Via Roma, 9', 'sendto.address_4' => '20123 Milano MI', 'sendto.address_5' => 'Italia', 'sendto.zipcode' => '20123', 'reference_year' => '2010', 'alias' => 'test', 'pin' => 'test', );
my $response = $user_agent->request( POST $SERVER_URL, 'Content_Type' => 'form-data', 'Content' => [%data] );
my $parsed_response = decode_json( $response->decoded_content );
if ( $response->is_success ) { print "Document ID: $parsed_response->{'document_id'}"; } else { given ( $parsed_response->{'status'} ) { when ('BAD_INTERFACE_CODE_PASSWORD') { # ... } when ('USER_AUTHENTICATION_FAILURE') { # ... } when ('INVALID_MIME_TYPE') { # ... } when ('DOCUMENT_ALREADY_EXISTS') { # ... } when ('BAD_METADATA_VALUE') { # ... } when ('DOCUMENT_NOT_ARCHIVED_DUE_TO_ERROR') { # ... } when ('BAD_ALIAS_OR_PIN') { # ... } when ('STRING_METADATA_TOO_LONG') { # ... } when ('INVALID_INTEGER_METADATA') { # ... } when ('INVALID_DATE_METADATA') { # ... } when ('BACKEND_SERVER_ERROR') { # ... } default { die 'Should not arrive in here' } } } |