Io sono felice di sapere che sono 2 mesi che contatto l'assistenza e non mi danno risposte se non "sollecito un ticket"... ma che numero chiamate voi?
Ricapitolo brevemente la strada verso l'uso dell'ambiente di test (che ho appena fatto funzionare..)
Si prende il certificato (gentilmente passato da lorismod) e si esegue in una shell linux:
openssl pkcs12 -in AAAAAA00H01H501P.P12 -out AAAAAA00H01H501P.pem -clcerts
Chiederà prima la password che SOGEI ha dato del certificato e poi una passphrase per il PEM (a scelta)
Poi la chiamata soap va fatta come segue:
function getVocher($id){
$soapOpt = array('local_cert'=>'AAAAAA00H01H501P.pem',
'location'=>'testServiceUrl,
'stream_context'=> stream_context_create(array('ssl'=> array(
'verify_peer'=>false,
'verify_peer_name'=>false,
'allow_self_signed' => true
))),
'passphrase'=>'pemPassphrase');
$client = new SoapClient($wsdl, $soapOpt);
try {
$item = $client->Check(array("checkReq"=>array("tipoOperazione"=>"1","codiceVoucher"=>$id)));
$resp->beneficiario = $item->checkResp->nominativoBeneficiario;
$resp->pivaEsercente = $item->checkResp->partitaIvaEsercente;
$resp->ambito = $item->checkResp->ambito;
$resp->bene = $item->checkResp->bene;
$resp->importo = $item->checkResp->importo;
} catch (Exception $s) {
if ($s->detail){
$resp->esito->code($s->detail->FaultVoucher->exceptionCode);
$resp->esito->message($s->detail->FaultVoucher->exceptionMessage);
} else {
$resp->esito->code($s->faultcode);
$resp->esito->message($s->faultstring);
}
}
return $resp;
}
La parte di chiamata
'stream_context'=> stream_context_create(array('ssl'=> array(
'verify_peer'=>false,
'verify_peer_name'=>false,
'allow_self_signed' => true
))),
non va riportata in produzione perchè l'ambiente di test ha un certificato non valido
Ringrazio l'assistenza SOGEI per essere stata esaustiva nel risolvere prontamente le mie richieste di assistenza
Seriamente.... Vi ringazio per la collaborazione non sarei riuscito a venirne fuori da solo!