Differenze tra le versioni di "Server OpenPass"

Da Libro Bianco OpenPass.
[versione bozza][versione bozza]
(Aggiunto testo)
(Architettura software dei nuovi servizi web Sistema openpass)
Riga 603: Riga 603:
 
|}
 
|}
 
== Architettura software dei nuovi servizi web Sistema openpass ==
 
== Architettura software dei nuovi servizi web Sistema openpass ==
 +
Nell’attuale sistema OpenPass è prevista un’evoluzione dei Servizi WEB esistenti per gestire ricarica e vendita online dei titoli di viaggio e consentire lo scambio dati tra le varie stazioni.
  
 +
Viene introdotto il concetto di WebCompany: azienda accreditata OpenPass che può fornire servizio di vendita per le stazioni (company).
 +
 +
Viene introdotto il concetto di WebShop: portale specifico di vendita titoli OpenPass per una determinata Company. Una WebCompany può avere uno o più WebShop. Ogni WebShop è legato univocamente alla propria company (stazione). Nel caso di WebShop di comprensorio, una stazione (company) dovrà farsi carico di gestire il WebShop a cui è collegato il comprensorio.
 +
 +
Le stazioni (Company) devono comunicare al Server OpenPass quali sono i WebShop a loro associati. Solo dopo questa richiesta il server OpenPass assegna un identificativo unico al WebShop della WebCompany accreditata.
 +
 +
Per far questo sarà necessario:
 +
* '''Modificare i servizi Web''' esistenti del server OpenPass:
 +
{| class="wikitable"
 +
! Servizio !! Specifiche variazione
 +
|-
 +
| '''RegisterTicket''' || verrà inserito un TAG aggiuntivo <info></info> con contenuto serializzato (base64), utilizzabile dal produttore a piacere (Company di vendita). Questo campo conterrà informazioni utili al produttore dei sistemi di accesso e al fornitore del negozio internet (WebShop)
 +
|-
 +
| '''GetTicket''' || verrà restituito un TAG aggiuntivo <info></info> contenente informazioni utili al produttore dei sistemi di accesso e al fornitore del negozio internet (WebShop)
 +
|-
 +
| '''RegisterCustomer''' || verranno registrate nuove informazioni relative ai customer
 +
|}
 +
* '''Implementare nuovi servizi Web''' del server OpenPass:
 +
{| class="wikitable"
 +
! Servizio !! Specifiche implementazioni
 +
|-
 +
| '''RegisterWebSales''' || Servizio per inviare le transizioni di vendita effettuate dal un WebShop. Ogni transazione di vendita verrà identificata univocamente dal proprio seriale di vendita RegisterWebSaleID fornito dal server OpenPass. Più transazioni di vendita possono essere raggruppate da un unico OrderNumber fornito dal Webshop in fase di invio transazioni. Tra le varie informazioni inviate ci saranno:
 +
* OperationType: (0-ritiro, 1 ricarica, 2 registrare rata di denaro, 3 storno),
 +
* Payperuse: (0 = no peyperuse, 1 = si payperuse)
 +
* Insurance: Abbinata un’assicurazione (0 = no, 1 = si)
 +
* CardPaid: inclusa la card nella transazione di vendita (0 = no, 1 = si)
 +
|-
 +
| '''UpdateWebSalelAmmount''' || Servizio per aggiornare le vendite Web con il quantitativo economico derivato dal calcolo dell'uso
 +
|-
 +
| '''GenerateTicket''' || Servizio con cui i fornitori dei sistemi di accesso potranno inviare al Server OpenPass i token Root.Workstation e Root.SerialNumberEx2 e la data di creazione della tessera con cui è stato generato il biglietto per ogni specifica transazione di vendita identificata con RegisterWebSaleID
 +
|-
 +
| '''GetWebSales''' || Servizio con cui i fornitori dei sistemi di accesso potranno scaricare dal server OpenPass tutte le vendite Web effettuate per ogni dominio. Il servizio viene interrogato passando l’identificativo della stazione) e l'ultimo RegisterWebSaleID in possesso dalla stazione.<br />Il servizio restituisce le informazioni di tutte le transazioni di vendita successive al RegisterWebSaleID passato, relativi a tutti i domini a cui è associata la Company richiesta.<br />In tali informazioni sono presenti gli OpenPassUID che identificano le tessere da ricaricare e i RegisterWebSaleID che permettono di legare le vendite WEB alle tessere ricaricate dai tornelli.
 +
|-
 +
| '''GetPassages''' || Servizio per recuperare tutti i passaggi effettuati da una tessera ricaricata a seguito di una vendita online identificata con RegisterWebSaleID e calcolare l'ammontare della vendita
 +
|-
 +
| '''SetDailyClosing''' || Servizio per inviare al server OpenPass lo stato di chiusura di una stazione indicante che tutti i passaggi sono stati inviati al server. Tale informazione sarà utile al fornitore di WebShop in quanto potrà da quel momento calcolare gli usi delle tessere ricaricate e conseguentemente l'ammontare della vendita
 +
|-
 +
| '''GetStatusSales''' || Servizio che dato in ingresso il RegisterWebSaleID restituisce in quale company, data e ora è stato scaricato
 +
|-
 +
| '''GetCustomer''' || Servizio che restituisce i dati di tutti del customer relativi ad uno specifico CustomerIdentifier
 +
|-
 +
| '''Getcustomersstatus''' || Servizio che restituisce l’ultima data di aggiornamento dei customers collegati ad un determinato dominio
 +
|-
 +
| '''Getcustomersdomain''' || Servizio che restituisce i dati di tutti i customers aggiornati da una certa data in poi
 +
|-
 +
| '''CreateDomain''' || Servizio che consente di creare nuovi domini
 +
|-
 +
| '''RegisterDomain''' || Servizio che permette di associare le company ai domini
 +
|-
 +
| '''GetDomainList''' || Servizio che restituisce tutti i domini associati ad un company
 +
|}
 +
 +
== Architettura hardware del sistema server ==
  
  

Versione delle 13:07, 25 ago 2016

Indice

Periodicità, formato e contenuto delle informazioni Gestite nella rete OpenPass

Il Server OpenPass prevede l’invio dei dati di passaggio e vendita (ed i dati necessari al completamento dei primi due flussi come ticket e customer) da parte delle stazioni consociate ANEF Ski Lombardia in formato XML attraverso l’utilizzo di WebService. L’invio dei dati da parte dei client delle stazioni al server OpenPass può essere in real time oppure in differita tramite processi di batch a seconda del fornitore dei sistemi di accesso collegati alle stazioni.

Il Server OpenPass prevede poi un invio giornaliero costituito da un unico file compresso (.ZIP) contenente i file in formato CSV (comma separated values) ed il file XML per le meta-informazioni su una risorsa condivisa con Regione Lombardia; i dati trasferiti riguardano le anagrafiche ed i passaggi.

Comunicazione tra il server openpass e i client delle stazioni

Lo standard OpenPass prevede una rete distribuita di centri di raccolta dati collegati via web service al server centrale.

Le informazioni di vendita e passaggio sono raccolte ai varchi e inviate ai centri di raccolta dati, che a loro volta le trasmettono al server centrale.

Il protocollo di scambio tra server e centri di raccolta è REST, basato sul metalinguaggio XML. Il server riceve i dati e li memorizza in un database SQL centralizzato, dove ogni dato di vendita o passaggio è correlato da un codice seriale identificativo univoco e eventuali dati anagrafici del customer.

Il server gestisce a frequenza prestabilita operazioni di configurazione e di caricamento dati, attraverso chiamate XML.

Comunicazione tra il server OpenPass e i client delle Stazioni

La comunicazione tra il server OpenPass ed i client delle stazioni avviene su protocollo HTTP mediante l’architettura software RESTful.

Per la comunicazione sono stati progettati e realizzati sei servizi organizzate in risorse web accessibili a seguito di autenticazione.

L’architettura software utilizza il paradigma client-server; i servizi attivati, in architettura RESTFul, sono di seguito riportati.

LOGIN

Consente l’autenticazione di un utente che desidera collegarsi. Ad ogni stazione è associata una login specifica fornita da ANEF SKI Lombardia. L’autenticazione vale per tutta la durata della sessione di scambio dati.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Username testo si Username della stazione
Password testo si Password della stazione

Parametri output

Parametro Tipo Descrizione
Group numerico Codice univoco di identificazione del gruppo
Company numerico Codice univoco di identificazione del gruppo

REGISTERTOKEN

Consente di registrare un token personalizzato. I tokens che cominciano con ‘Root.’ richiedono l’accesso di un amministratore. Ogni token ha un tipo associato (es. numerico, data, ora etc.). Il token non dipende dalla Stazione che ne fa richiesta.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Name testo si Nome del token
Description testo si Descrizione del significato di token
Type numerico si Tipo assegnato (0=numerico, 1=data, 2=ora)

Parametri output

Parametro Tipo Descrizione
CreatedNew boolean Booleano che indica se il token è stato aggiunto

REGISTERFORMAT

Consente di registrare un formato di registrazione da utilizzare per la produzione e l’interpretazione di biglietti. Ritorna un codice identificativo univoco per il formato. La chiamata può essere effettuata tutte le volte che si vuole, il sistema ritornerà sempre lo stesso codice. Il codice di formato è quindi uguale per tute le stazioni che ne fanno richiesta. Lo stesso formato può essere condiviso tra più biglietti (es. Stagionale Adulti, Ridotto, FISI etc.).

Parametri input

Parametro Tipo Obbligatorio Descrizione
Description testo si Descrizione del formato
Creator testo si Nome del creatore del formato
Fixed area oggetto no Oggetto contenente gli oggetti TokenAllocation della fixed area
Variable area oggetto no Oggetto contenente gli oggetti TokenAllocation della variable area
Oggetto Fixed area
Parametro Tipo Obbligatorio Descrizione
TokenAllocation oggetto si Oggetto contenente i valori dei Token
Oggetto Variable area
Parametro Tipo Obbligatorio Descrizione
TokenAllocation oggetto si Oggetto contenente i valori dei Token
Oggetto TokenAllocation
Parametro Tipo Obbligatorio Descrizione
Name testo si Nome del Token precedentemente salvato
BitAdress numerico no BitAdreass
BitWidth numerico no BitWidth
ConstantValue numerico no ConstantValue

Parametri output

Parametro Tipo Descrizione
FormatIdentifier numerico Codice numerico univoco di identificazione del formato

ENUMERATEFORMATS

Restituisce l'elenco esaustivo dei codici identificativi dei formati noti al server.

Parametri input

Nessuno

Parametri output

Parametro Tipo Descrizione
FormatIdentifiers oggetto Lista dei codici identificativi dei formati noti al server
Oggetto FormatIdentifiers
Parametro Tipo Descrizione
Int numerico Codice numerico univoco di identificazione dei formati noti al server

GETFORMAT

Dato un codice identificativo di formato ottiene la definizione dello stesso

Parametri input

Parametro Tipo Obbligatorio Descrizione
FormatIdentifier numerico si Codice numerico univoco di identificazione del formato

Parametri output

Parametro Tipo Descrizione
Identifier numerico Codice numerico univoco di identificazione del formato
Description testo Descrizione del formato
Creator testo Nome del creatore del formato
LastTouch data Data e ora di creazione
Fixed area oggetto Oggetto contenente gli oggetti token allocation della fixed area
Variable area oggetto Oggetto contenente gli oggetti toke allocation della variable area
Oggetto Fixed area
Parametro Tipo Descrizione
TokenAllocation oggetto Oggetto contenente i valori dei Token
Oggetto Variable area
Parametro Tipo Descrizione
TokenAllocation oggetto Oggetto contenente i valori dei Token
Oggetto TokenAllocation
Parametro Tipo Descrizione
Name testo Nome del Token precedentemente salvato
BitAdress numerico BitAdress
BitWidth numerico BitWidth
ConstantValue numerico ConstantValue

REGISTERTICKET

Consente di registrare un set di valori di tokens costanti per una certa categoria di biglietti al fine di poterla identificare con rapidità nelle elaborazioni dati. (Es. Stagionale adulti, Stagionale ridotto). Ritorna un codice identificativo univoco per il biglietto che è identico al valore passato per il token “TicketID” obbligatorio. La chiamata può essere effettuata tutte le volte che si vuole; a parità di valori il sistema ritornerà sempre lo stesso codice. La chiamata consente una registrazione diversa per ogni Stazione, ma il codice numerico ritornato sarà a parità di set di valori lo stesso su più stazioni. Due biglietti uguali non possono né devono avere codici identificativi differenti.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Description testo si Descrizione del ticket
CustomerAge numerico si Classe di età del destinatario del biglietto (1=”Bambini <=11”, 2=”Ragazzi 12-17”, 3=”Adulti 18-64”, 4=”Senior >= 65”)
CustomerType numerico no Tipologia del destinatario del biglietto (1=”Non Residenti”, 2=”Residenti”)
Values oggetto si oggetto contenente i TokenValue
Oggetto Values
Parametro Tipo Obbligatorio Descrizione
TokenValue oggetto si Oggetto che contiene i dati dei token
Oggetto TokenValue
Parametro Tipo Obbligatorio Descrizione
Name testo si Nome del token. (Il Token “Root.TicketID” è obbligatorio)
Value testo si Valore del token. (Il valore del Token “Root.TicketID” è obbligatorio)

Parametri output

Parametro Tipo Descrizione
TicketIdentifier numerico Codice numerico univoco di identificazione del biglietto. Il codice restituito sarà quello che viene passato con il Token “Root. TicketID”

ENUMERATETICKETS

Ottieni l’elenco esaustivo dei codici identificativi dei biglietti noti al server per la stazione specificata.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Company numerico si Codice numerico univico di identificazione della stazione

Parametri output

Parametro Tipo Descrizione
TicketIdentifiers oggetto Lista dei codici identificativi dei ticket noti al server
Oggetto TicketIdentifiers
Parametro Tipo Descrizione
Int numerico Codice numerico univoco di identificazione dei ticket noti al server

GETTICKET

Dato un codice identificativo di biglietto, ottiene la definizione dello stesso

Parametri input

Parametro Tipo Obbligatorio Descrizione
Company numerico si Codice numerico univoco di identificazione della stazione
TicketIdentifier numerico si Codice numerico univoco di identificazione del biglietto

Parametri output

Parametro Tipo Descrizione
Identifier numerico Codice numerico univoco di identificazione del biglietto
Description testo Descrizione del biglietto
CustomerAge numerico Classe di età del destinatario del biglietto (1=”Bambini <=11”, 2=”Ragazzi 12-17”, 3=”Adulti 18-64”, 4=”Senior >= 65”)
CustomerType numerico Tipologia del destinatario del biglietto (1=”Non Residenti”, 2=”Residenti”)
LastTouch data Data e ora di creazione
Values oggetto Oggetto contenente i TokenValue
Oggetto Values
Parametro Tipo Descrizione
TokenValue oggetto Oggetto che contiene i dati dei token
Oggetto TokenValue
Parametro Tipo Descrizione
Name testo Nome del token
Value testo Valore del token

ENUMERATEGROUPS

Ottieni l'elenco esaustivo dei codici identificativi dei gruppi noti al server.

Parametri input

Nessuno

Parametri output

Parametro Tipo Descrizione
GroupIdentifies oggetto Lista dei codici identificativi dei gruppi noti al server
Oggetto GroupIdentifies
Parametro Tipo Descrizione
Int numerico Codice numerico univoco di identificazione dei gruppi noti al server

ENUMERATECOMPANIES

Ottieni l’elenco esaustivo delle stazioni note al server appartenenti al gruppo specificato.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del gruppo

Parametri output

Parametro Tipo Descrizione
Companies oggetto Lista dei codici identificativi delle stazioni appartenenti al gruppo
Oggetto Companies
Parametro Tipo Descrizione
Int numerico Codice numerico univoco di identificazione delle stazioni note al server

ENUMERATEWORKSTATIONS

Ottieni l’elenco esaustivo delle postazioni di vendita note al server appartenenti alla società specificata.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Company numerico si Codice numerico univoco di identificazione della stazione

Parametri output

Parametro Tipo Descrizione
Workstations oggetto Lista dei codici identificativi delle workstations appartenenti alla stazione
Oggetto Workstation
Parametro Tipo Descrizione
Int numerico Codice numerico univoco di identificazione delle workstations note al server

REGISTERWORKSTATIONKEY

Registra una chiave pubblica appartenente ad una postazione emittente

Parametri input

Parametro Tipo Obbligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del group
Company numerico si Codice numerico univoco di identificazione della stazione
Workstation numerico si Codice numerico univoco di identificazione della workstation
KeyIdentifier numerico si Codice di identificazione della chiave
Expiri data si Data di fine validità della chiave
KeyLength numerico si Lunghezza della chiave
Modulus testo si Modulo della chiave
Exponent testo si Esponente della chiave

Parametri output

Parametro Tipo Descrizione
CreatedNew boolean Booleano che indica se la chiave è stata aggiunta

ENUMERATEKEYS

Ottieni l’elenco esaustivo delle chiavi pubbliche della postazione emittente specificata

Parametri input

Parametro Tipo Obbligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del gruppo
Workstation numerico si Codice numerico univoco di identificazione della workstation

Parametri output

Parametro Tipo Descrizione
KeyIdentifiers oggetto Lista dei codici identificativi delle chiavi appartenenti alle workstation
Oggetto KeyIdentifiers
Parametro Tipo Descrizione
Int numerico Codice numerico univoco di identificazione delle chiavi

GETKEY

Ottieni la chiave pubblica specificata

Parametri input

Parametro Tipo Obligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del group
Workstation numerico si Codice numerico univoco di identificazione della workstation
KeyIdentifier numerico si Codice di identificazione della chiave richiesta

Parametri output

Parametro Tipo Descrizione
Group numerico Codice numerico univoco di identificazione del group
Company numerico Codice numerico univoco di identificazione della stazione
Workstation numerico Codice numerico univoco di identificazione della workstation
KeyIdentifier numerico Codice di identificazione della chiave
Expiri data Data di fine validità della chiave
KeyLength numerico Lunghezza della chiave
Modulus testo Modulo della chiave
Exponent testo Esponente della chiave

REGISTERCUSTOMER

Permette la registrazione di un cliente sul sistema ottenendo un codice numerico identificativo

Parametri input

Paramentro Tipo Obbligatorio Descrizione
Name numerico si Nome del cliente
Name numerico si Numero cliente attribuito localmente dalle casse emittenti
Name numerico no CRSIdentifier
Name testo no CRSData
Name testo no Info1
Name testo no Info2
Name numerico no Codice Postale
Name testo no Immagine
Name data no Data di fine validità del record

Parametri output

Paramentro Tipo Descrizione
CustomerIdentifier numerico Codic enumerico univoco di identificazione del cliente identico al codice attribuito localmente dalle casse emittenti
CreatedNew boolean Booleano che indica se il nuovo cliente è stato aggiunto

REGISTERSALES

Registra un insieme di vendite di biglietti di consorzio in formato comune sul server per il gruppo, la società e le postazioni specificate. Ogni chiamata può contenere una o più registrazioni di vendita. Ogni vendita è associata ad un cliente, il cui codice identificativo va ottenuto con l'invocazione del servizio RegisterCustomer. Il CustomerIdentifier è a 0 per i biglietti non nominativi. All’interno di ogni vendita, unitamente al ticket identifier (che specifica i valori costanti), vengono specificati i valori rilevanti dei tokens ‘dinamici’, ovvero quelli assegnati al momento dell’edizione di un biglietto.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del gruppo
Company numerico si Codice numerico di identificazione della stazione
Sales oggetto si Oggetto che contiene i SaleTransaction
Oggetto Sales
Parametro Tipo Obbligatorio Descrizione
SaleTransaction oggetto si Oggetto che contiene i dati delle vendite
Oggetto SaleTransaction
Paramentro Tipo Obbligatorio Descrizione
Workstation numerico si Codice numerico univoco di identificazione della workstation
OperationType numerico si Specifica il tipo di operazione (0=vendite, 1=annullamenti)
CreationTime data si Data e ora di creazione e vendita del biglietto
Amount numerico si Prezzo
CustomerIdentifier numerico si Identificativo del cliente ottenuto registrando il cliente con il servizio RegisterCustomer (0 per biglietti non nominativi)
TicketIdentifier numerico si Codice identificativo univoco del biglietto
ChipID testo no ChipID dei dati di vendita
Values oggetto si Oggetto che contiene i TokenValue
Oggetto Values
Paramentro Tipo Obbligatorio Descrizione
TokenValue oggetto si Oggetto che contiene i dati dei token
Oggetto TokenValue
Parametro Tipo Obbligatorio Descrizione
Name testo si Nome del token
Value testo si Valore del token

Parametri output

Paramentro Tipo Descrizione
InsertedRecordsCount numerico Numero dei record effettivamente inseriti

REGISTERPASSAGES

Registra un insieme di passaggi agli impianti di biglietti di consorzio in formato comune sul server per il gruppo, la società e gli impianti specificati. Ogni chiamata può contenere una o più registrazioni di passaggio. Ogni passaggio è opzionalmente associato ad un cliente, il cui codice identificativo va ottenuto con la RegisterCustomer. Ricordiamo che il CustomerIdentifier è a 0 per i biglietti non nominativi. All’interno di ogni passaggio, unitamente al ticket identifier (che specifica i valori costanti), vengono specificati i valori rilevanti dei tokens ‘dinamici’, ovvero quelli assegnati al momento dell’edizione di un biglietto e che si modificano durante l’utilizzo.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del gruppo
Company numerico si Codice numerico univoco di identificazione del gruppo
Passages oggetto si Oggetto che contiene i PassageTransaction
Oggetto Passages
Parametro Tipo Obbligatorio Descrizione
PassageTransaction oggetto si Oggetto che contiene i dati dei passaggi
Oggetto PassageTransaction
Values || oggetto || si || Oggetto che contiene i TokenValue
Parametro Tipo Obbligatorio Descrizione
CustomerIdentifier numerico si Identificativo del cliente ottenuto registrando il cliente con il servizio RegisterCustomer (0 per biglietti non nominativi)
TicketIdentifier numerico si Codice identificativo del biglietto
LogTime data si Data e ora del passaggio
CheckpointName testo si Identificativo testuale univoco (case sensitive) dell’impianto di risalita all’interno della società specificata
Oggetto Values
Parametro Tipo Obbligatorio Descrizione
TokenValue oggetto si Oggetto che contiene i dati dei token
Oggetto Token Value
Parametro Tipo Obbligatorio Descrizione
Name testo si Nome del token
Value testo si Valore del token

Parametri output

Parametro Tipo Descrizione
InsertedRecordsCount numerico Numero dei record effettivamente inseriti

SETDAILYFIRSTPASSAGESCOUNT

Invia al server, ai fini statistici, il conteggio indistinto dei primi passaggi di tutti i biglietti di stazione e di consorzio e non obbligatoriamente il conteggio distinto dei primi passaggi categorizzati.

Parametri input

Parametro Tipo Obbligatorio Descrizione
Group numerico si Codice numerico univoco di identificazione del gruppo
Company numerico si Codice numerico univoco di identificazione della stazione
Values oggetto si Oggetto che contiene i DailyFirstPassagesCount
Oggetto Values
Parametro Tipo Obbligatorio Descrizione
DailyFirstPassagesCount oggetto si Oggetto che contiene i conteggi dei passaggi
Oggetto DailyFirstPassagesCount
Paramentro Tipo Obbligatorio Descrizione
Day data si Data del giorno a cui si riferisce il conteggio dei passaggi
Count numerico si Numero dei passaggi

Parametri output

Nessun parametro.

ERRORI

Sigla Significato
200 Bad credentials Le credenziali fornite sono errate
201 Must login first Non è stato eseguito il login
202 Bad request Errore generico nella richiesta
203 Unknown token Un token menzionato nel formato non è conosciuto
204 Unknown format Il formato richiesto è sconosciuto
205 Unknown ticket Il biglietto richiesto è sconosciuto
206 Unknown company La società non è nell’elenco del server
210 Unknown group Il gruppo specificato non è noto al server
211 Unknown Company La società specificata non è nota al server
212 Unknown workstation La postazione specificata non è nota al server
220 Unknown key La chiave richiesta non è stata registrata
301 Root.TicketID can not be empty or text Si è inviata la registrazione di un biglietto sprovvisto di numero di identificazione o con numero di identificazione non numerico
302 CustomerAge can not be empty Si è inviata la registrazione di un biglietto sprovvisto di informazione relativa alla fascia di età, oppure con un codice relativo alla fascia di età errato

Architettura software dei nuovi servizi web Sistema openpass

Nell’attuale sistema OpenPass è prevista un’evoluzione dei Servizi WEB esistenti per gestire ricarica e vendita online dei titoli di viaggio e consentire lo scambio dati tra le varie stazioni.

Viene introdotto il concetto di WebCompany: azienda accreditata OpenPass che può fornire servizio di vendita per le stazioni (company).

Viene introdotto il concetto di WebShop: portale specifico di vendita titoli OpenPass per una determinata Company. Una WebCompany può avere uno o più WebShop. Ogni WebShop è legato univocamente alla propria company (stazione). Nel caso di WebShop di comprensorio, una stazione (company) dovrà farsi carico di gestire il WebShop a cui è collegato il comprensorio.

Le stazioni (Company) devono comunicare al Server OpenPass quali sono i WebShop a loro associati. Solo dopo questa richiesta il server OpenPass assegna un identificativo unico al WebShop della WebCompany accreditata.

Per far questo sarà necessario:

  • Modificare i servizi Web esistenti del server OpenPass:
Servizio Specifiche variazione
RegisterTicket verrà inserito un TAG aggiuntivo <info></info> con contenuto serializzato (base64), utilizzabile dal produttore a piacere (Company di vendita). Questo campo conterrà informazioni utili al produttore dei sistemi di accesso e al fornitore del negozio internet (WebShop)
GetTicket verrà restituito un TAG aggiuntivo <info></info> contenente informazioni utili al produttore dei sistemi di accesso e al fornitore del negozio internet (WebShop)
RegisterCustomer verranno registrate nuove informazioni relative ai customer
  • Implementare nuovi servizi Web del server OpenPass:
Servizio Specifiche implementazioni
RegisterWebSales Servizio per inviare le transizioni di vendita effettuate dal un WebShop. Ogni transazione di vendita verrà identificata univocamente dal proprio seriale di vendita RegisterWebSaleID fornito dal server OpenPass. Più transazioni di vendita possono essere raggruppate da un unico OrderNumber fornito dal Webshop in fase di invio transazioni. Tra le varie informazioni inviate ci saranno:
  • OperationType: (0-ritiro, 1 ricarica, 2 registrare rata di denaro, 3 storno),
  • Payperuse: (0 = no peyperuse, 1 = si payperuse)
  • Insurance: Abbinata un’assicurazione (0 = no, 1 = si)
  • CardPaid: inclusa la card nella transazione di vendita (0 = no, 1 = si)
UpdateWebSalelAmmount Servizio per aggiornare le vendite Web con il quantitativo economico derivato dal calcolo dell'uso
GenerateTicket Servizio con cui i fornitori dei sistemi di accesso potranno inviare al Server OpenPass i token Root.Workstation e Root.SerialNumberEx2 e la data di creazione della tessera con cui è stato generato il biglietto per ogni specifica transazione di vendita identificata con RegisterWebSaleID
GetWebSales Servizio con cui i fornitori dei sistemi di accesso potranno scaricare dal server OpenPass tutte le vendite Web effettuate per ogni dominio. Il servizio viene interrogato passando l’identificativo della stazione) e l'ultimo RegisterWebSaleID in possesso dalla stazione.
Il servizio restituisce le informazioni di tutte le transazioni di vendita successive al RegisterWebSaleID passato, relativi a tutti i domini a cui è associata la Company richiesta.
In tali informazioni sono presenti gli OpenPassUID che identificano le tessere da ricaricare e i RegisterWebSaleID che permettono di legare le vendite WEB alle tessere ricaricate dai tornelli.
GetPassages Servizio per recuperare tutti i passaggi effettuati da una tessera ricaricata a seguito di una vendita online identificata con RegisterWebSaleID e calcolare l'ammontare della vendita
SetDailyClosing Servizio per inviare al server OpenPass lo stato di chiusura di una stazione indicante che tutti i passaggi sono stati inviati al server. Tale informazione sarà utile al fornitore di WebShop in quanto potrà da quel momento calcolare gli usi delle tessere ricaricate e conseguentemente l'ammontare della vendita
GetStatusSales Servizio che dato in ingresso il RegisterWebSaleID restituisce in quale company, data e ora è stato scaricato
GetCustomer Servizio che restituisce i dati di tutti del customer relativi ad uno specifico CustomerIdentifier
Getcustomersstatus Servizio che restituisce l’ultima data di aggiornamento dei customers collegati ad un determinato dominio
Getcustomersdomain Servizio che restituisce i dati di tutti i customers aggiornati da una certa data in poi
CreateDomain Servizio che consente di creare nuovi domini
RegisterDomain Servizio che permette di associare le company ai domini
GetDomainList Servizio che restituisce tutti i domini associati ad un company

Architettura hardware del sistema server

Torna a: Il Sistema OpenPass