Attivazione WS Carta docente

On 20 gennaio 2017, in Sviluppo, by admin

Creazione certificato DER

openssl req -newkey rsa:2048 -keyout key.der -out req.der -outform DER

Dopo aver uploadato sul portale il file req.der mi e’ permesso di scaricare il file CER fornito dal portale per generare il certificato PEM

openssl x509 –inform der –in xxxxx.cer –out xxxxx.pem

A partire dalla chiave key.der e dal file PEM generato procediamo a creare il certificato P12

openssl pkcs12 -export -inkey xxxxx.der -in xxxxx.pem -out xxxxx.p12

A questo punto a partire dal file P12 generato devo generare il file pem finale da utilizzare nella chiamata SOAP

openssl pkcs12 -in supplied_cert.p12 -out php_soap_cert.pem -clcerts

A questo punto scarico il pacchetto base zip fornito che contiene la guida e il file WSDL con la struttura delle chiamate del WS

https://cartadeldocente.istruzione.it/static/lineeguida-esercenti-cartadeldocente.zip

Carico sullo spazio FTP tutte le chiavi, il file wsdl contenuto nello zip e creo un file .php per effettuare la chiamata di attivazione.

<?php

$lock = 1;

if ($lock == 0) {

$wsdl = "./cartadocente/VerificaVoucher.wsdl"; // Or "http://provider.com/api/api.wsdl"

$options = [
'location' => "https://ws.cartadeldocente.istruzione.it/VerificaVoucherDocWEB/VerificaVoucher",
'local_cert' => "./cartadocente/php_soap_cert.pem",
'passphrase' => "artebambini17",
];

try {
$soapClient = new SoapClient($wsdl, $options);

echo '__getFunctions()<br/><br/>';
print '<pre>';
var_dump($soapClient->__getFunctions());
print '</pre>';
echo '__getTypes()<br/><br/>';
print '<pre>';
var_dump($soapClient->__getTypes());
print '</pre>';
echo '__chiamata()<br/><br/>';

try {
$result = $soapClient->Check(array("checkReq"=>array("tipoOperazione"=>"1","codiceVoucher"=>"11aa22bb")));
if ($result){
print '<pre>';
var_dump($result);
print '</pre>';

/*

object(stdClass)#2 (1) {
["checkResp"]=>
object(stdClass)#3 (5) {
["nominativoBeneficiario"]=>
string(22) "Attivazione effettuata"
["partitaIvaEsercente"]=>
string(11) "02460021203"
["ambito"]=>
string(1) "-"
["bene"]=>
string(1) "-"
["importo"]=>
float(0)
}
}

*/

}
} catch(Exception $e) {
print '<pre>';
var_dump($e);
print '</pre>';
}

} catch(Exception $e) {
var_dump($e);
}

}

?>