===============================================================================
= Servizi Pubblici =
===============================================================================

I servizi pubblici di Paper sono veri e propri web service SOAP pubblicati tramite un file WSDL.

AL momento l'unico servizio esposto e' il servizio di ricerca assegno, ed e' condizionato ad un login iniziale.

Con il login l'utente ottiene un token da includere nelle chiamate al servizio di ricerca assegno.

===============================================================================
=== WSDL PUBBLICO ===
===============================================================================

Il WSDL pubblico che descrive i servizi e' pubblicato al seguente indirizzo: 

 https://www.caricese.it/ws/PaperPublicServices/WEB-INF/wsdl/PaperPublicServices.wsdl

===============================================================================
=== Login ===
===============================================================================

Esempio richiesta SOAP:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pub="http://www.crcsbo.it/ws/PublicLogonService">
    <soapenv:Header/>
    <soapenv:Body>
       <pub:LogonPaperWsIn>
          <pub:username>gbilli</pub:username>
          <pub:password>......</pub:password>
       </pub:LogonPaperWsIn>
    </soapenv:Body>
 </soapenv:Envelope>

Esempio risposta SOAP:
 
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
       <LogonPaperWsOut xmlns:a="http://www.crcsbo.it/ws/BasicSchema" xmlns="http://www.crcsbo.it/ws/PublicLogonService">
          <token>b74e21f2-043a-4e68-a116-4cfbe4a5e87a</token>
       </LogonPaperWsOut>
    </soapenv:Body>
 </soapenv:Envelope>

Il valore token deve essere utilizzato nelle richieste di ricerca assegno.  
 
===============================================================================
=== Ricerca assegno ===
===============================================================================

La ricerca assegno prevede i seguenti parametri:

* responseType: indica i dati che si desiderano, 1 = dati negoziazione, 2 = immagini , 3 = entrambi
* imageType: formato immagini, jpeg o tiff
* userToken: token restituito dalla funzione di login
* abi: abi dell istituto
* assegno: abi, cab, numero dell'assegno
	
Esempio richiesta SOAP:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pub="http://www.crcsbo.it/ws/PublicLogonService">
    <soapenv:Header/>
    <soapenv:Body>
       <pub:RicercaAssegniWsIn responseType="3" imageType="jpeg">
          <pub:userToken>b74e21f2-043a-4e68-a116-4cfbe4a5e87a</pub:userToken>
          <pub:abi>2008</pub:abi>
          <pub:assegno abi="1000" cab="3201" numass="5345009528"/>
       </pub:RicercaAssegniWsIn>
    </soapenv:Body>
 </soapenv:Envelope>

Esempio risposta SOAP:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
       <RicercaAssegniWsOut xmlns:a="http://www.crcsbo.it/ws/BasicSchema" xmlns="http://www.crcsbo.it/ws/PublicLogonService">
          <AssegnoImmagine>
             <key abi="1000" cab="3201" numass="5345009528"/>
             <atb>
                <tipo>A</tipo>
                <importo>2537</importo>
                <divisa>EUR</divisa>
                <cra>000000000000</cra>
                <numeroImmagine>1</numeroImmagine>
                <timestampModifica>2014-07-02+02:00</timestampModifica>
                <endorse>65428</endorse>
             </atb>
             <frontImage>/9j/4QD4RXhpZgAASU.....</frontImage>
             <rearImage>/9j/4QD4RXhpZ....</rearImage>
          </AssegnoImmagine>
          <esito value="OK"/>
       </RicercaAssegniWsOut>
    </soapenv:Body>
 </soapenv:Envelope>

Esempio risposta con errore:

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
       <RicercaAssegniWsOut xmlns:a="http://www.crcsbo.it/ws/BasicSchema" xmlns="http://www.crcsbo.it/ws/PublicLogonService">
          <esito value="KO">
             <a:msg cod="ER00107" tipo="E">
                <a:desc>Assegno abi: 1000 cab: 3201 num:  5345009528 non trovato</a:desc>
             </a:msg>
          </esito>
       </RicercaAssegniWsOut>
    </soapenv:Body>
 </soapenv:Envelope>

===============================================================================
=== Esito e codici di errore ===
===============================================================================

L'elemento ESITO contiene le informazioni sulla riuscita o meno dell'esecuzione.

In caso l'esito abbia come valore OK, e' stata esente da errore.

In caso l'esito abbia come valore OK, significa che si e' verificato almeno un errrore.

In questo caso l'elemento contiene uno o piu' messaggi, ognuno dei quali indica
* il tipo di messaggio (E, W, I)
* il codice 
* la descrizione

La descrizione e' un testo libero che dipende da dove si e' vericato l'errore.

I codici di errore identifica invece il tipo di errore. Attualmente i codici utilizzati sono i seguenti:

ER00001 : Credenziali errate
ER00002 : IP del chiamante non autorizzato
ER00003 : password formalmente errata
ER00004 : codice utente errato
ER00005 : utente non loggato
ER00006 : password utente scaduta
ER00007 : token non valido 

ER00010 : parametri mancanti

ER00106 : ricerca senza risultati
	
ER00107 : assegno non trovato
ER00108 : assegno senza immagine
ER00109 : dati immagine assegno non corretti
ER00110 : errore di caricamento immagine assegno (buffer danneggiato)
		
ER00999 : errore generico


