Ultima request
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://documentospesap730.sanita.finanze.it">
<SOAP-ENV:Body>
<ns1:inserimentoDocumentoSpesaRequest>
<ns1:eek:pzionale1>
</ns1:eek:pzionale1>
<ns1:eek:pzionale2>
</ns1:eek:pzionale2>
<ns1:eek:pzionale3>
</ns1:eek:pzionale3>
<ns1:pincode>Iz3Pt1wsT06X9w9S4tRi54owcdSO/O0wSEy3t7U11OGD2uF3ftE6cEXFqFrTvhs2KFs+5j3gkj1CYZApRH3Lc/9PSOfmB+pSV88I4H9fB3f5HWwZldfNxIgxbTmtEI5aeP97x4rxA0bkq95eREIrV4jnO0rgweaPjzP7L1jlwRc=</ns1:pincode>
<ns1:proprietario>
<ns1:codiceRegione>130</ns1:codiceRegione>
<ns1:codiceAsl>202</ns1:codiceAsl>
<ns1:cfProprietario>PROVAX00X00X000Y</ns1:cfProprietario>
</ns1:proprietario>
<ns1:idInserimentoDocumentoFiscale>
<ns1:idSpesa>
<ns1:pIva>11954290599</ns1:pIva>
<ns1:dataEmissione>2017-08-31</ns1:dataEmissione>
<ns1:numDocumentoFiscale>
<ns1:dispositivo>1</ns1:dispositivo>
<ns1:numDocumento>25</ns1:numDocumento>
</ns1:numDocumentoFiscale>
</ns1:idSpesa>
<ns1:dataPagamento>2017-08-31</ns1:dataPagamento>
<ns1:cfCittadino>htZQPC0C0Hg1ryFlWcqbrX7AJKPIhxJkrpY72jBgOnbFzsV1duYUlevVVbjqX6ViZnlqTZg1lHq0PGxJ4o8dCCmCAn60l5CwAhon7y6JB3WXetHIdo2NXGWZHfo5WzuTvzI6y/8DnvVxlVbDPhV5FaL5p2CIEcoj37wUc+aapH4=</ns1:cfCittadino>
<ns1:voceSpesa>
<ns1:tipoSpesa>SR</ns1:tipoSpesa>
<ns1:flagTipoSpesa>2</ns1:flagTipoSpesa>
<ns1:importo>80</ns1:importo>
</ns1:voceSpesa>
</ns1:idInserimentoDocumentoFiscale>
</ns1:inserimentoDocumentoSpesaRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope
<?php
require 'Credenziali.php';
echo "<h4>REPORT MENSILE DEI DOCUMENTI INVIATI</h4>";
/* -------------------------------------------------------------------------------- Soap Client */
$ws = _ReportMensile_WSDL;
$SoapClientParam["location"] = $ReportMensile;
require 'SoapClientInit.php';
/* -------------------------------------------------------------------------------- Soap Request */
echo "<h4>INVIO L' INTERROGAZIONE</h4>";
error_log("INVIO L' INTERROGAZIONE", 0);
$SoapRequest = array
(
"pincode" => $pincodeInvianteCifrato,
"Proprietario" => array
(
"cfProprietario" => $cfProprietarioCifrato,
"codiceRegione" => $codiceRegione,
"codiceAsl" => $codiceAsl,
"codiceSSA" => $codiceSSA,
),
"opzionale1" => $opzionale1,
"opzionale2" => $opzionale2,
"opzionale3" => $opzionale3,
"tipoEstrazione" => $ric_tipoEstrazione,
"annoMese" => $ric_annoMese,
);
echo show_var($SoapRequest); echo "<br /><br />";
log_var($SoapRequest);
try { $output = $client->ReportMensile($SoapRequest); }
catch ( SoapFault $e )
{
require 'SoapFault.php';
}
/* -------------------------------------------------------------------------------- Soap Receipt */
echo "<h4>L'INTERROGAZIONE HA AVUTO RISPOSTA</h4>";
error_log("L'INTERROGAZIONE HA AVUTO RISPOSTA", 0);
print_r($output); echo "<br /><br />";
echo show_var($output); echo "<br /><br />";
/* -------------------------------------------------------------------------------- Esito */
if ( $output->esitoChiamata == 0 )
{
$estrazione = $ric_tipoEstrazione."-".$ric_annoMese;
$titolo = "E' PRESENTE IL REPORT MENSILE DEI DOCUMENTI INVIATI ".$estrazione;
echo "<h4>".$titolo."</h4>";
error_log($titolo, 0);
$dati = $output->fileCSV;
if( empty($dati) )
{
echo "<h4>IL FILE E' VUOTO</h4>";
error_log("IL FILE E' VUOTO", 0);
}
else
{
$nomefile = $PercorsoDocRicevuti.$estrazione.".zip";
echo "<h4>SALVO IL REPORT COME ".$nomefile."</h4>";
error_log("SALVO IL REPORT COME ".$nomefile, 0);
file_put_contents ( $nomefile, $dati );
$zip = new ZipArchive;
$res = $zip->open($nomefile);
if ($res === TRUE)
{
$fileCSV = $zip->getNameIndex(0);
$zip->extractTo($PercorsoDocRicevuti);
$zip->close();
$nomeZIP = $PercorsoDocRicevuti.$fileCSV;
$nomeCSV = $PercorsoDocRicevuti.$estrazione.".csv";
rename($nomeZIP, $nomeCSV);
echo "File csv estratto ".$nomeCSV;
error_log("File csv estratto ".$nomeCSV, 0);
}
else
{
echo "Il file ".$nomefile." non è disponibile";
error_log("Il file ".$nomefile." non è disponibile", 0);
}
echo "<h4>INTERROGAZIONE TERMINATA CON SUCCESSO</h4>";
error_log("INTERROGAZIONE TERMINATA CON SUCCESSO", 0);
}
}
else
{
$response = $output->listaMessaggi->messaggio;
ReportOutput("codice");
ReportOutput("descrizione");
ReportOutput("tipo");
echo "<br /><br />";
echo "<h4>INTERROGAZIONE TERMINATA CON ERRORE</h4>";
error_log("INTERROGAZIONE TERMINATA CON ERRORE", 0);
}
echo "<h4>FINE DEL LAVORO</h4>";
error_log("done ".$_SERVER['PHP_SELF'], 0);
?>
$output->esitoChiamata == 1
if ( $output->esitoChiamata == 1 )
{
$listamessaggi = $output->listaMessaggi->messaggio;
if(is_array($listamessaggi))
{
foreach( $listamessaggi as $messaggio)
{
$testo = $testo.$messaggio->descrizione."<br>";
}
}
else
{
$testo = "$listamessaggi->descrizione<br><br>Codice: $listamessaggi->codice<br><br>Tipo: $listamessaggi->tipo";
}
echo $testo;
}
<?php
// DEFINIZIONE PER WSDL SCRIPT INTERROGAZIONE PUNTUALE
require_once 'Credenziali.php';
//Acquisisco i dati dal form di input
$DataFattura = $_POST['dataFattura']);
$NumFattura = $_POST['numFattura']);
$dispositivo = $_POST['dispositivo']);
$ws = _InterrogazionePuntale_WSDL;
$SoapClientParam["location"] = $InterrogazionePuntuale;
$client = new SoapClient($ws, $SoapClientParam);
$SoapRequest = array( "pincode" => $pincodeInvianteCifrato,
"Proprietario" => array("cfProprietario" => $cfProprietarioCifrato),
"opzionale1" => $opzionale1,
"opzionale2" => $opzionale2,
"opzionale3" => $opzionale3,
"idDocumentoFiscale" => array( "pIva" => $piProprietario,"dataEmissione" => $DataFattura,
"numDocumentoFiscale" => array( "dispositivo" => $dispositivo,"numDocumento" => $NumFattura,)));
$output = $client->InterrogazionePuntuale($SoapRequest);
$numDocumento = $output->documentoFiscale->idDocumentoFiscale->numDocumentoFiscale->numDocumento;
$dataEmissione = $output->documentoFiscale->idDocumentoFiscale->dataEmissione;
$dataInvio = $output->documentoFiscale->dataInvio;
$tipoInvio = $output->documentoFiscale->tipoInvio;
$protocollo = $output->documentoFiscale->protocollo;
$importo = $output->documentoFiscale->totaliVociSpesa;
/////////////////////////////////////////////////////////////////////
// Se totaliVociSpesa è un array devo fare un ciclo foreach per avere il totale
/////////////////////////////////////////////////////////////////////
$totale = 0;
if(!is_array($importo))
{
$totale = $importo->importo;
}
else
{
foreach($importo as $aliasImporto)
{
$totale = $totale + $aliasImporto->importo;
}
}
?>
SoapClientInit.php
<?php
/* -------------------------------------------------------------------------------- Soap Client */
error_log("wsdl file : ".$ws, 0);
echo $ws."<br /><br />";
error_log("soap server location : ".$SoapClientParam["location"], 0);
echo $SoapClientParam["location"]."<br /><br />";
echo show_var($SoapClientParam); echo "<br />";
$client = new SoapClient($ws, $SoapClientParam);
echo "<h4>List of available SOAP functions</h4>";
$output = $client->__getFunctions();
while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<br />";
//echo "<h4>List of available items in the WSDL for the Web service</h4>";
//$output = $client->ItemSearch();
//while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<br />";
echo "<h4>List of SOAP types described in the WSDL for the Web service</h4>";
$output = $client->__getTypes();
while (list ($key, $val) = each ($output) ) echo $val."<br />"; echo "<br />";
?>
2) ric_tipoEstrazione: non ho capito cosa mettere per la data della fattura.
/* -------------------------------------------------------------------------------- parametri per REPORT MENSILE DEI DOCUMENTI INVIATI */
$ric_tipoEstrazione = "I";
$ric_annoMese = "201711";
...
SOAP Fault: (faultcode: HTTP, faultstring: Error Fetching http headers)
...
RESPONSE HEADERS ===========
NULL
RESPONSE ===================
NULL
-------- log:
[29-Jan-2018 19:32:25 Europe/Berlin] PHP Fatal error: SOAP Fault: (faultcode: HTTP, faultstring: Error Fetching http headers) in SoapFault.php on line 25
trigger_error($err, E_USER_ERROR);
SoapFault.php
<?php
$err = "SOAP Fault: (faultcode: {$e->faultcode}, faultstring: {$e->faultstring})";
LogTitles("RICHIESTA TERMINATA CON ERRORE", $err);
echo "output<br />".show_var($output); echo "<br /><br />";
error_log(PHP_EOL."output =>".log_var($output), 0);
print_r($e); echo "<br /><br />";
echo show_var($e); echo "<br /><br />";
error_log(PHP_EOL."e =>".log_var($e), 0);
echo "REQUEST HEADERS ============" . "<br /><xmp>";
var_dump($client->__getLastRequestHeaders()); echo "</xmp><br /><br />";
echo "REQUEST ====================" . "<br /><xmp>";
var_dump($client->__getLastRequest()); echo "</xmp><br /><br />";
echo "RESPONSE HEADERS ===========" . "<br /><xmp>";
var_dump($client->__getLastResponseHeaders()); echo "</xmp><br /><br />";
echo "RESPONSE ===================" . "<br /><xmp>";
var_dump($client->__getLastResponse()); echo "</xmp><br /><br />";
trigger_error($err, E_USER_ERROR);
die;
?>
...ora so che mi picchierai ... non trovo la funzione...PHP:LogTitles("RICHIESTA TERMINATA CON ERRORE", $err);?>
function ReportOutput($var)
{
global $response;
if ( !empty($response->{$var}) )
{
error_log($var." = ".$response->{$var}, 0);
echo $var." = ".$response->{$var}."<br />";
}
}
function LogTitles($string=null, $addtext=null)
{
echo "<h4>".$string."</h4>".$addtext;
error_log($string, 0);
}
sempre gentilissimo marino51 e grazie della pazienzafunction...
[30-Jan-2018 14:27:46 Europe/Berlin] main _6_Mensile.php
[30-Jan-2018 14:27:46 Europe/Berlin] TEST RUN ***************
[30-Jan-2018 14:27:46 Europe/Berlin] name : Ottico PROVA
...
[30-Jan-2018 14:27:46 Europe/Berlin] wsdl file : ReportMensile730Service.wsdl
[30-Jan-2018 14:27:46 Europe/Berlin] soap server location : https://invioSS730pTest.sanita.finanze.it/ReportMensile730Web/ReportMensilePort
[30-Jan-2018 14:27:46 Europe/Berlin] INVIO L' INTERROGAZIONE
[30-Jan-2018 14:27:46 Europe/Berlin] PHP Notice: Undefined variable: opzionale1 in _6_Mensile.php on line 33
[30-Jan-2018 14:27:46 Europe/Berlin] PHP Notice: Undefined variable: opzionale2 in _6_Mensile.php on line 34
[30-Jan-2018 14:27:46 Europe/Berlin] PHP Notice: Undefined variable: opzionale3 in _6_Mensile.php on line 35
[30-Jan-2018 14:28:47 Europe/Berlin] RICHIESTA TERMINATA CON ERRORE
[30-Jan-2018 14:28:47 Europe/Berlin]
output =>array
(
[0] => struct reportMensileRequest {
string opzionale1;
string opzionale2;
string opzionale3;
string pincode;
ProprietarioType Proprietario;
AnnoMeseType annoMese;
String1Type tipoEstrazione;
},
[1] => struct reportMensileResponse {
string esitoChiamata;
FileType fileCSV;
listaMessaggi listaMessaggi;
},
[2] => struct listaMessaggi {
messaggio messaggio;
},
[3] => struct messaggio {
string codice;
string descrizione;
string tipo;
},
[4] => struct ProprietarioType {
String3Type codiceRegione;
String3Type codiceAsl;
String6Type codiceSSA;
CfType cfProprietario;
},
[5] => string CfType,
[6] => string String3Type,
[7] => string String6Type,
[8] => string String1Type,
[9] => integer AnnoMeseType,
[10] => base64Binary FileType,
)
[30-Jan-2018 14:28:47 Europe/Berlin]
e =>object
(
faultstring => Error Fetching http headers,
faultcode => HTTP,
)
[30-Jan-2018 14:28:47 Europe/Berlin] PHP Fatal error: SOAP Fault: (faultcode: HTTP, faultstring: Error Fetching http headers) in SoapFault.php on line 27