730 precompilato + di uno snippet

claudio56

Utente Attivo
20 Gen 2016
25
0
1
questa sera lo faccio, nel frattempo guarda l'esecuzione allegata
Ciao Marino,
è frustrante vedere che a te funziona benissimo e a me no.
Mi sarebbe utile avere un log con la tua stessa esposizione di dati.
Forse riuscirei a capire che cosa c'è che non va.
Comunque grazie. Resto in attesa del tuo post.
Sei sempre grande
Claudio
 

claudio56

Utente Attivo
20 Gen 2016
25
0
1
Ciao, il documento è del mio cliente, ma fa riferimento a questa informativa:
OBBLIGHI DEI MEDICI E DEGLI ODONTOIATRI DAL 01/01/2020 IN RELAZIONE A QUANTO STABILITO NELLA L. DI BILANCIO 2020

Vedi ad esempio: https://www.ordinemedicifc.it/archivio-news/

Allego lo screenshot.Vedi l'allegato 6911
il nuovo valore deve essere esposto tra <cfCittadino> e <voceSpesa> ossia:
<cfCittadino>EvdSXiVCOvd................</cfCittadino>
<pagamentoTracciato>NO</pagamentoTracciato>
<voceSpesa>

Spero di essere stato di aiuto
Claudio
 

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
ecco il file, spero di aver messo tutto l'occorrente,
non é molto diverso dalla prima stesura,
controllerei come prima cosa i parametri dell'utente di test (credenziali),
a seguire come viene composta l'array $SoapClientParam (credenziali)
e per ultima la composizione dell'array $SoapRequest (FattureInviaWsdl)
sono i tre elementi fondamentali,
 

Allegati

claudio56

Utente Attivo
20 Gen 2016
25
0
1
ecco il file, spero di aver messo tutto l'occorrente,
non é molto diverso dalla prima stesura,
controllerei come prima cosa i parametri dell'utente di test (credenziali),
a seguire come viene composta l'array $SoapClientParam (credenziali)
e per ultima la composizione dell'array $SoapRequest (FattureInviaWsdl)
sono i tre elementi fondamentali,
Buon giorno Marino
Sto dando uno sguardo ai files che hai allegato.
Mi sono accorto che manca il file specificato alla fine del file credenziali.php
require_once 'myUtils/show_vars.php';
Lo puoi postare.
Grazie
Claudio
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Ciao marino51,

sto cercando di risolvere il problema ma non ne vengo a capo.

Codice:
...
...
[22-Jan-2020 11:03:25 Europe/Berlin] inizio trasferimento del file
[22-Jan-2020 11:03:25 Europe/Berlin] PHP Deprecated:  capture_session_meta is deprecated; its information is now available via stream_get_meta_data() in /var/www/html/730_2019_new/FattureInviaWsdl.php on line 54
[22-Jan-2020 11:03:26 Europe/Berlin] PHP Notice:  Undefined variable: SoapRequest in /var/www/html/730_2019_new/FattureInviaWsdl.php on line 58
[22-Jan-2020 11:03:26 Europe/Berlin] PHP Stack trace:
[22-Jan-2020 11:03:26 Europe/Berlin] PHP   1. {main}() /var/www/html/730_2019_new/FattureInviaWsdl.php:0
[22-Jan-2020 11:03:26 Europe/Berlin] RICHIESTA TERMINATA CON ERRORE
[22-Jan-2020 11:03:26 Europe/Berlin]
output =>object
(
    return => object
    (
        codiceEsito => 200,
        descrizioneEsito => ERRORE NELL'APPLICAZIONE: CONTATTARE L'ASSISTENZA,
    ),
)
[22-Jan-2020 11:03:26 Europe/Berlin]
e =>object
(
    faultstring => MAX-LEN,
    faultcode => env:Client,
    xdebug_message => MAX-LEN,
)
[22-Jan-2020 11:03:26 Europe/Berlin] PHP Fatal error:  SOAP Fault: (faultcode: env:Client, faultstring: cvc-particle 3.1: in element {http://ejb.invioTelematicoSS730p.sanita.finanze.it/}inviaFileMtom of type {http://ejb.invioTelematicoSS730p.sanita.finanze.it/}inviaFileMtom, found </ns1:inviaFileMtom> (in namespace http://ejb.invioTelematicoSS730p.sanita.finanze.it/), but next item should be nomeFileAllegato) in /var/www/html/730_2019_new/SoapFault.php on line 18
[22-Jan-2020 11:03:26 Europe/Berlin] PHP Stack trace:
[22-Jan-2020 11:03:26 Europe/Berlin] PHP   1. {main}() /var/www/html/730_2019_new/FattureInviaWsdl.php:0
[22-Jan-2020 11:03:26 Europe/Berlin] PHP   2. require() /var/www/html/730_2019_new/FattureInviaWsdl.php:61
[22-Jan-2020 11:03:26 Europe/Berlin] PHP   3. trigger_error() /var/www/html/730_2019_new/SoapFault.php:18
La mia versione PHP è la 7.0.33-14 (ubuntu16.04).. Ho controllato online e la funzione capture_session_meta è deprecata, e sostituita da stream_get_meta_data().

Ho trovato online questi due link:

https://doc.bccnsoft.com/docs/php-docs-7-en/migration56.openssl.html

https://doc.bccnsoft.com/docs/php-docs-7-en/function.stream-get-meta-data.html

..ma non capisco come adattare il codice, per migrare dalla versione 5.6 alla 7.0.

Mi potresti aiutare?

Grazie mille
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
la variabile non definita, deve contenere tutti i dati per trasferire il file, non può essere non definita
Ciao Marino

Cosa vuol dire? Gli altri anni non mi dava mai questo messaggio di errore.. e il codice (a parte gli aggiornamenti riportati sopra, presi dai post precedenti) non l'ho modificato.

Mi puoi guidare nel capire cosa non va? Sono in grosse difficoltà.

Se occorre ti posto il codice.

Grazie

[EDIT]
Non avevo dichiarato la variabile $SoapRequest.. l'ho fatto così:
PHP:
$SoapRequest = array(
    "nomeFileAllegato"       => _Fatture730,
    "pincodeInvianteCifrato" => $pincodeInvianteCifrato,
    "datiProprietario"       => ( Array
        (
        "codiceRegione"      => $codiceRegione,
        "codiceAsl"          => $codiceAsl,
        "codiceSSA"          => $codiceSSA,
        "cfProprietario"     => $cfProprietario
        )),
    "opzionale1"             => '0',
    "opzionale2"             => '0',
    "opzionale3"             => '0',
    "documento"              => $zipfile
);

error_log("inizio trasferimento del file", 0);
$output = $client->inviaFileMtom($SoapRequest);

try { $output = $client->inviaFileMtom($SoapRequest); }
catch ( SoapFault $e )
{
    require 'SoapFault.php';
}

envelopes();

...
...
Ma mi restituisce un nuovo tipo di errore:
Codice:
[25-Jan-2020 10:47:12 Europe/Berlin] File trattato          : Fatture730_2019_completo.zip
[25-Jan-2020 10:47:12 Europe/Berlin] carico in memoria il file Fatture730_2019_completo.zip
[25-Jan-2020 10:47:12 Europe/Berlin] definisco il file wsdl InvioTelematicoSpeseSanitarie730p.wsdl
[25-Jan-2020 10:47:12 Europe/Berlin] definisco the soap server location https://invioSS730pTest.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort
[25-Jan-2020 10:47:12 Europe/Berlin] inizio trasferimento del file
[25-Jan-2020 10:47:13 Europe/Berlin] PHP Deprecated:  capture_session_meta is deprecated; its information is now available via stream_get_meta_data() in /var/www/html/730_2019_new/FattureInviaWsdl.php on line 56
[25-Jan-2020 10:47:16 Europe/Berlin] trasferimento terminato
[25-Jan-2020 10:47:16 Europe/Berlin] PHP Notice:  Undefined property: stdClass::$protocollo in /var/www/html/730_2019_new/FattureInviaWsdl.php on line 80
[25-Jan-2020 10:47:16 Europe/Berlin] PHP Stack trace:
[25-Jan-2020 10:47:16 Europe/Berlin] PHP   1. {main}() /var/www/html/730_2019_new/FattureInviaWsdl.php:0
[25-Jan-2020 10:47:16 Europe/Berlin] done /730_2019_new/FattureInviaWsdl.php
In pratica non mi restituisce il numero di PROTOCOLLO..


[EDIT 2]
Dopo ulteriori tentativi mi ha restituito il numero di PROTOCOLLO.. :eek:

[EDIT 3]
Il risultato dell'invio è un PDF in cui mi scarta il file.zip inviato, con E015
 

Allegati

Ultima modifica:

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
Ho provato di nuovo la procedura in area di TEST e di nuovo NON mi restituisce il PROTOCOLLO.. :eek:

[EDIT]
Il numero di protocollo mi viene restituito correttamente..

ma nuovamente il PDF mi restituisce che "il file NON È STATO ACCOLTO" (Errore: E015 = "IL FILE RISULTA GIA' INVIATO PRECEDENTEMENTE ED ELABORATO")

PS: ho provato a cambiare anche il nome del file.. ma niente.. stesso errore in area di test..

[EDIT 2]
In un ulteriore tentativo mi restituisce che:
Codice:
[25-Jan-2020 11:39:29 Europe/Berlin] Protocollo = 20012511391959355
[25-Jan-2020 11:39:29 Europe/Berlin] PHP Deprecated:  capture_session_meta is deprecated; its information is now available via stream_get_meta_data() in /var/www/html/730_2019_USED/FattureInvioRicevutaPdf.php on line 45
[25-Jan-2020 11:39:29 Europe/Berlin] LA RICHIESTA HA AVUTO RISPOSTA
[25-Jan-2020 11:39:29 Europe/Berlin] ERRORE: NON E' PRESENTE LA RICEVUTA PER IL PROTOCOLLO 20012511391959355
[25-Jan-2020 11:39:29 Europe/Berlin] done /730_2019_USED/FattureInvioRicevutaPdf.php
Mi ci sto impazzendo! :oops:
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
ma nuovamente il PDF mi restituisce che "il file NON È STATO ACCOLTO" (Errore: E015 = "IL FILE RISULTA GIA' INVIATO PRECEDENTEMENTE ED ELABORATO")
almeno la connessione al webservice funziona,
negli anni passati non poteva funzionare senza la "$SoapRequest",
probabilmente successive modifiche che hai apportato allo script hanno impedito la sua valorizzazione

in ogni caso ora la connessione funziona,
se il file risulta già presente, significa che uno degli invii precedenti ha funzionato, ed il webservice lo ha preso in carico

per fare prove non basta cambiare il nome del file, ma é necessario cambiare il numero di documento di ciascuno dei documenti presenti (se si usa lo stesso file)
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
almeno la connessione al webservice funziona,
negli anni passati non poteva funzionare senza la "$SoapRequest",
probabilmente successive modifiche che hai apportato allo script hanno impedito la sua valorizzazione
Negli scorsi anni avevo inserito la variabile direttamente dentro la funzione, senza dichiarare un $SoapRequest..
Quando ho aggiunto il nuovo codice non avevo fatto caso che eraa il caso di dichiararla a parte.

in ogni caso ora la connessione funziona,
se il file risulta già presente, significa che uno degli invii precedenti ha funzionato, ed il webservice lo ha preso in carico

per fare prove non basta cambiare il nome del file, ma é necessario cambiare il numero di documento di ciascuno dei documenti presenti (se si usa lo stesso file)
Nel codice avevamo aggiunto (per l'area di test) la variabile $time proprio per rendere "univoco" il numero progressivo delle ricevute..
PHP:
$time = ( $TEST ? substr(microtime(true), -3).$my_str : "" );
...
...
$numDocumento = $numDocumentoFiscale->addChild('numDocumento', $col[_ColDocNumber].$time);
:rolleyes:

Faccio altre prove.. e ti aggiorno.. Intanto grazie mille! :)
 
Ultima modifica:

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
AGGIORNAMENTI:

Dopo aver risistemato il codice riesco a dialogare con i webservices.. e ottengo anche il file PDF da "FattureInvioRicevutaPDF", dove in fase di TEST mi risultano ACCOLTE tutte le ricevute fiscali (con i soli 20% di warnings, che di solito in fase EFFETTIVA si riducono notevolmente..).

Riscontro un unico, grande problema:
Al primo invio del file "FattureInviaWsdl.php" non mi restituisce il numero di PROTOCOLLO.. mentre al secondo refresh dello stesso file (usando il medesimo file.ZIP) il numero di protocollo mi viene restituito..

Non vorrei, eseguendo il refresh del file "FattureInviaWsdl.php" in fase EFFETTIVA, incappare in qualche errore critico (essendo un secondo invio, e magari non consentito) e fare un casino totale, non avendo credo in fase EFFETTIVA una seconda possibilità.. Parliamo di oltre 4'000 ricevute fiscali..

Come mai non mi restituisce subito il numero di protocollo (al primo invio di "FattureInviaWsdl.php"), come succedeva gli altri anni?

Marino51, hai qualche suggerimento?

:oops:

PS: ho provato anche a ridurre il numero delle ricevute fiscali inviate, ma niente.. al primo invio nessun numero di protocollo restituito..

PPS: rispetto agli anni passati ho dovuto attendere almeno 10 minuti prima che il server elaborasse tutte le ricevute fiscali. Per questo motivo non mi restituiva da subito la "ricevutaPDF", ma quando provavo a caricare il file "FattureInvioRicevutaPDF" mi diceva che "ERRORE: NON E' PRESENTE LA RICEVUTA PER IL PROTOCOLLO .....". Finita l'elaborazione è andato tutt'ok!
 

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
Al primo invio del file "FattureInviaWsdl.php" non mi restituisce il numero di PROTOCOLLO.. mentre al secondo refresh dello stesso file (usando il medesimo file.ZIP) il numero di protocollo mi viene restituito..
ogni esecuzione dell'invio registra le operazioni eseguite nel file di log, nel file credenziali é presente,
PHP:
$fileLog = "__TesseraSanitaria.log";  // dettaglio dei passi della lavorazione (log da conservare come ulteriore prova)

ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', FALSE);
ini_set('log_errors', TRUE);
ini_set('error_log', $fileLog);

error_log(".", 0);
error_log("Current PHP version     : ".phpversion(), 0);
error_log("main                    : ".$_SERVER['PHP_SELF'], 0);
meglio leggere il log e capire cosa é successo, prima di qualunque refresh / riesecuzione, verificando la conclusione dell'operazione di invio

il log visualizza l' operazione attiva se consultato durante il processo, in caso di durata eccessiva

per quanto riguarda i tempi di attesa, bisognerebbe conoscere il carico dei server e come interagiscono ( ci potrebbero essere anche le fatture elettroniche sugli stessi server, ma chissà ... )

opterei per invii da 1000 ( ma anche 500 ) per evitare possibili timeout o memoria insufficiente
e …. molta calma
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
ogni esecuzione dell'invio registra le operazioni eseguite nel file di log, nel file credenziali é presente,
...
meglio leggere il log e capire cosa é successo, prima di qualunque refresh / riesecuzione, verificando la conclusione dell'operazione di invio
...
il log visualizza l' operazione attiva se consultato durante il processo, in caso di durata eccessiva
Ti mostro un estratto del file di LOG di una delle tante prove (è sempre simile quando NON mi restituisce il num. di protocollo:
Codice:
[26-Jan-2020 11:34:53 Europe/Berlin] File trattato          : Fatture730_2019_completo.zip
[26-Jan-2020 11:34:53 Europe/Berlin] carico in memoria il file Fatture730_2019_completo.zip
[26-Jan-2020 11:34:53 Europe/Berlin] definisco il file wsdl InvioTelematicoSpeseSanitarie730p.wsdl
[26-Jan-2020 11:34:53 Europe/Berlin] definisco the soap server location https://invioSS730pTest.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort
[26-Jan-2020 11:34:53 Europe/Berlin] inizio trasferimento del file
[26-Jan-2020 11:34:53 Europe/Berlin] PHP Deprecated:  capture_session_meta is deprecated; its information is now available via stream_get_meta_data() in /var/www/html/730_2019_USED/FattureInviaWsdl.php on line 58
[26-Jan-2020 11:34:54 Europe/Berlin] trasferimento terminato
[26-Jan-2020 11:34:54 Europe/Berlin] PHP Notice:  Undefined property: stdClass::$protocollo in /var/www/html/730_2019_USED/FattureInviaWsdl.php on line 80
[26-Jan-2020 11:34:54 Europe/Berlin] PHP Stack trace:
[26-Jan-2020 11:34:54 Europe/Berlin] PHP   1. {main}() /var/www/html/730_2019_USED/FattureInviaWsdl.php:0
[26-Jan-2020 11:34:54 Europe/Berlin] done /730_2019_USED/FattureInviaWsdl.php
Potrebbe dipendere dalla riga PHP Deprecated: capture_session_meta is deprecated;? Usando la versione php7.0 dove capture_session_meta è deprecato. Al suo posto bisognerebbe utilizzare stream_get_meta_data() ma non so come fare.. :rolleyes:

Al secondo/terzo invio (nonostante il LOG mi restituisca la stessa riga), il $protocollo viene valorizzato e non da il PHP Notice: Undefined property: stdClass::$protocollo.

Tieni conto che quando il num. di protocollo mi viene restituito, ci mette si e no 2-3 secondi. Il file .ZIP è lo stesso del precedente invio e contiene più di 4'000 ricevute fiscali...

per quanto riguarda i tempi di attesa, bisognerebbe conoscere il carico dei server e come interagiscono ( ci potrebbero essere anche le fatture elettroniche sugli stessi server, ma chissà ... )

opterei per invii da 1000 ( ma anche 500 ) per evitare possibili timeout o memoria insufficiente
e …. molta calma
Ho provato con invii da 1'000 e succede la stessa cosa.
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
AGGIORNAMENTI 2:

Seguendo i suggerimenti di post precedenti, ho modificato nel file credenziali.php la $SoapClientParam

da così:
Codice:
$SoapClientParam = array(
    "useMTOM"        => TRUE,
    "location"       => "x",  // sostituita nello script con l'endpoint specifico
    "login"          => $login,
    "password"       => $password,
    "authentication" => SOAP_AUTHENTICATION_BASIC,
    "keep_alive"     => TRUE,
    "cache_wsdl"     => WSDL_CACHE_NONE,
    "trace"          => TRUE,
    "exceptions"     => TRUE,
    "stream_context" => stream_context_create( array (
        "ssl" => array(
            "verify_peer"          => FALSE,
            "verify_peer_name"     => FALSE,
            "capture_session_meta" => TRUE,
        ),
    )),
);
a così:
Codice:
$SoapClientParam = array(
    "location"            => "x",
    "login"             => $login,
    "password"            => $password,
    "authentication"    => SOAP_AUTHENTICATION_BASIC,
    "trace"             => false,
    "exceptions"        => false,
    "stream_context"    => stream_context_create( array(
      "ssl" => array(
          "verify_peer"       => false,
          "verify_peer_name"  => false
       )
    ))
);

Sono già due tentativi che non mi restituisce correttamente il Num. di PROTOLLO (e nessun alert nel file di LOG).

Faccio altri tentati e vi aggiorno..
Marino51, ho una curiosità: che cosa cambia settando la variabile $SoapClientParam con questi parametri?
 

perseoclub

Utente Attivo
28 Nov 2015
83
0
6
c'é un problema nello script ...
Quell'errore me lo da solo quando (terminato l'invio) non restituisce il NUM. di PROTOCOLLO.

Il file "FattureInviaWsdl.php", che mi dovrebbe restituire il $protocollo, è:

PHP:
<?php

require_once 'Credenziali.php';

// invia il file .zip al Ministero delle Finanze

error_log("File trattato          : "._Fatture730 .".zip", 0);


echo "<p><h4>TRASFERIMENTO DELLE FATTURE PER IL 730 PRECOMPILATO AL MINISTERO</h4></p>";

error_log("carico in memoria il file "._Fatture730 .".zip", 0);
$zipfile = implode("", file(_Fatture730 .".zip"));


$ws = _InvioTelematico_WSDL;                        // "InvioTelematicoSpeseSanitarie730p.wsdl"
$SoapClientParam["location"] = $InvioTelematico;    // "https://invioSS730p.sanita.finanze.it/InvioTelematicoSS730pMtomWeb/InvioTelematicoSS730pMtomPort"

error_log("definisco il file wsdl ".$ws, 0);
echo $ws."<p> </p>";

error_log("definisco the soap server location ".$SoapClientParam["location"], 0);
echo $SoapClientParam["location"]."<p> </p>";


$client = new SoapClient($ws, $SoapClientParam);

echo "<p><h4>List of available SOAP functions</h4></p>";
$output = $client->__getFunctions();
while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<p> </p>";

echo "<p><h4>List of types described in the WSDL for the Web service</h4></p>";
$output = $client->__getTypes();
while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<p> </p>";


echo "<p><h4>INIZIO TRASFERIMENTO DEL FILE</h4></p>";

$SoapRequest = array(
    "nomeFileAllegato"       => _Fatture730 .".zip",
    "pincodeInvianteCifrato" => $pincodeInvianteCifrato,
    "datiProprietario"       => ( Array
        (
        "codiceRegione"      => $codiceRegione,
        "codiceAsl"          => $codiceAsl,
        "codiceSSA"          => $codiceSSA,
        "cfProprietario"     => $cfProprietario
        )),
    "opzionale1"             => '0',
    "opzionale2"             => '0',
    "opzionale3"             => '0',
    "documento"              => $zipfile
);

error_log("inizio trasferimento del file", 0);
//$output = $client->inviaFileMtom($SoapRequest);

try { $output = $client->inviaFileMtom($SoapRequest); }
catch ( SoapFault $e )
{
    require 'SoapFault.php';
}

//envelopes();
// END EDIT

if (is_soap_fault($output))
    {
    $err = "SOAP Fault: (faultcode: {$output->faultcode}, faultstring: {$output->faultstring})";
    error_log("trasferimento terminato con errori", 0);
    echo "<p><h4>TRASFERIMENTO TERMINATO CON ERRORI</h4></p>"."<p>$err</p>";
    var_dump($output); echo "<p> </p>";
    trigger_error($err, E_USER_ERROR);
    }
else
    {
    error_log("trasferimento terminato", 0);
    echo "<p><h4>TRASFERIMENTO TERMINATO</h4></p>";

    $protocollo = $output->return->protocollo;
    echo $protocollo."<p> </p>";
    error_log("numero di protocollo: ". $protocollo, 0);

    ReportOutput("protocollo");
    ReportOutput("dataAccoglienza");
    ReportOutput("nomeFileAllegato");
    ReportOutput("dimensioneFileAllegato");
    ReportOutput("codiceEsito");
    ReportOutput("descrizioneEsito");
    ReportOutput("idErrore");
    }

error_log("done ".$_SERVER['PHP_SELF'], 0);
echo "<p><h4>FINE DEL LAVORO</h4></p>";


// ReportOutput per "FattureInviaWsdl.php"
function ReportOutput($var)
{
    global $response;
    if ( !empty($response->{$var}) )
    {
        error_log($var." = ".$response->{$var}, 0);
        echo $var." = ".$response->{$var}."<br />";
    }
}

?>
e la riga 80 è appunto:
$protocollo = $output->return->protocollo;

il $SoapClientParam è nel post precedente, e gli arriva dal file "Credenziali.php"

:rolleyes:
 

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
ci sono due versioni del codice mischiate, farei questa modifica, lasciando tutto quello che precede,
le funzioni chiamate dovresti averle,
se non c'é metti la funzione "envelopes" in "credenziali" perché importante per capire cosa succede nel caso di un mancato collegamento

in ogni caso tieni copia dello script prima delle modifiche
PHP:
$client = new SoapClient($ws, $SoapClientParam);

$SoapRequest = array
(
    "pincodeInvianteCifrato" => $pincodeInvianteCifrato,
    "datiProprietario"       => array
    (
        "codiceRegione"      => $codiceRegione,
        "codiceAsl"          => $codiceAsl,
        "codiceSSA"          => $codiceSSA,
        "cfProprietario"     => $cfProprietario
    ),
    "opzionale1"             => '0',
    "opzionale2"             => '0',
    "opzionale3"             => '0',
    "nomeFileAllegato"       => _Fatture730 .".zip",
    "documento"              => $zipfile
);
echo "SoapRequest<br />".show_var($SoapRequest)."<br /><br />";
error_log(PHP_EOL."SoapRequest => ".log_var($SoapRequest), 0);

echo "<p><h4>INIZIO TRASFERIMENTO DEL FILE</h4></p>";
error_log("inizio trasferimento del file", 0);

try { $output = $client->inviaFileMtom($SoapRequest); }
catch ( SoapFault $e )
{
    require 'SoapFault.php';
}

envelopes();

/* -------------------------------------------------------------------------------- Soap Receipt */
LogTitles("L'INVIO HA AVUTO RISPOSTA");

print_r($output); echo "<br /><br />";
echo "output<br />".show_var($output)."<br /><br />";
error_log(PHP_EOL."output => ".log_var($output), 0);


if ( $output->return->codiceEsito == 0 )
{
    LogTitles("TRASFERIMENTO TERMINATO CON SUCCESSO");
}
else
{
    LogTitles("TRASFERIMENTO TERMINATO CON ERRORE");
}
echo "<p><h4>FINE DEL LAVORO</h4></p>";
error_log("done ".$_SERVER['PHP_SELF'], 0);
?>