Autore: . 841087937 Data creazione 01/06/2017 Società cliente: Numerica Pubblicità s.r.l. Prodotto/Progetto: Progetto di e-commerce attraverso sistema di microcrediti Oggetto: Definizione del problema e bozza di progetto Autore documento: Ivan Genovesi Versione documento: 1.0 Data creazione documento: 7 maggio 2003 Data ultima revisione: 7 maggio 2003 Storico revisioni data Revisioni 7 maggio 2003 Prima stesura versione autore IG 1.0 Lista distribuzione nome destinatario Società ruolo/reparto indirizzo e-mail Domenico Chiarini BOLbusiness Dir. Operativo [email protected] Marco Lorenzi BOLbusiness Dir. Tecnico [email protected] Antonello Baldi Numerica Marketing [email protected] Riferimenti documento nome fisico documento formato microcrediti_numerica_1_0.doc Microsoft Word XP BOL Page 1 Pagina 1 di 12 Autore: . 841087937 Data creazione 01/06/2017 Sommario Sommario ...................................................................................................................................... 2 Introduzione .................................................................................................................................. 3 Situazione attuale ......................................................................................................................... 3 Obiettivi del progetto .................................................................................................................... 4 Soluzione proposta....................................................................................................................... 5 Apertura del conto corrente in punti ................................................................................................ 6 Acquisto e caricamento di nuovi punti sul conto corrente ................................................................ 7 Caricamento di punti....................................................................................................................................... 7 Acquisto di punti ............................................................................................................................................. 8 Altre modalità di acquisizione di punti ............................................................................................................ 9 Consultazione dello stato del conto corrente ................................................................................... 9 Interfaccia verso i sistemi di utilizzo dei punti ................................................................................ 10 Esempio di utilizzo: il servizio Ottopiù. .......................................................................................... 12 BOL Page 2 Pagina 2 di 12 Autore: . 841087937 Data creazione 01/06/2017 Introduzione Numerica Pubblicità s.r.l. è la concessionaria per la raccolta di pubblicità dell’Editoriale Bresciana. I media utilizzati per veicolare i messaggi commerciali sono svariati: il quotidiano, le televisioni e le radio locali; tra questi media vi è anche il portale Internet di BresciaOnLine. Situazione attuale Sostanzialmente i servizi offerti da Numerica attraverso il media Internet si materializzano attraverso delle campagne di pubblicazione di banner, che vengono situati o in pagine generiche del portale oppure in pagine i cui contenuti hanno stretta attinenza con il messaggio lanciato dai banner stessi. Un’altra sinergia attualmente in atto tra Numerica e BresciaOnLine riguarda la pubblicazione sul portale degli annunci raccolti dalle testate Ottopiù e OttopiùCasa e liberamente inviati dagli utenti che intendono segnalare al pubblico la propria partecipazione a tali mercatini virtuali. Si precisa che l’invio degli annunci è del tutto gratuito e può avvenire via fax, via posta oppure tramite Internet all’interno del portale BresciaOnLine. L’invio dell’annuncio tramite Internet richiede però l’iscrizione alla community del portale BresciaOnLine da parte del mittente. La consultazione degli annunci invece è completamente libera e non richiede nessun requisito da parte degli utenti Internet che intendono usufruire di tale servizio. BOL Page 3 Pagina 3 di 12 Autore: . 841087937 Data creazione 01/06/2017 Obiettivi del progetto Il presente progetto intende studiare e realizzare un sistema software di gestione di microcrediti prepagati, che consenta di subordinare all’impiego di tali microcrediti la fruizione da parte degli utenti di taluni servizi Internet erogati da Numerica tramite il portale BresciaOnLine. L’idea è quella di associare ad ogni tipologia di servizio considerato un certo microcosto, e di richiedere agli utenti il pagamento della “microcifra” specificata per la fruizione del servizio stesso. La particolarità dell’esiguo costo con cui verranno resi disponibili tali servizi Internet rende inadeguato (per motivi economici) l’utilizzo di sistemi di pagamento via Internet oramai tecnologicamente maturi e affidabili, come il pagamento via carta di credito oppure attraverso il sistema BankPass, in quanto il costo fisso legato alla transazione potrebbe risultare simile, se non addirittura maggiore, del costo del servizio stesso. Nasce quindi l’esigenza di studiare un sistema che abbia la stessa valenza di un sistema di pagamento ma non si esprima in termini valutari bensì in termini di crediti o “punti”. In definitiva si intende realizzare un sistema software che operi in tecnologia Internet e debba: 1. consentire agli utenti che vogliano usufruire del sistema di poter definire in un database centralizzato un repository di punti; tale repository dovrebbe ricalcare l’idea di “conto corrente espresso in punti” 2. consentire agli utenti che ne sono in possesso di caricare sul proprio conto corrente i punti acquisiti 3. consentire agli utenti di consultare la situazione del proprio conto 4. consentire agli utenti di impiegare i punti disponibili sul proprio conto per usufruire dei servizi che richiedono una spesa in termine di microcrediti Oltre alle caratteristiche citate, che sono rivolte verso il lato pubblico, il sistema deve garantire le seguenti funzionalità dedicate alle attività di gestione: 1. interfaccia verso la community del portale BrescaOnLine 2. interfaccia verso i sistemi software che implementano i servizi basati sull’uso di microcrediti, per consentire le funzioni di verifica dei crediti disponibili e del relativo eventuale impiego (= decremento del credito restante) 3. sistema di log avanzato per la registrazione di ogni operazione che veda coinvolta delle transazioni di punti (caricamento, impiego) BOL Page 4 Pagina 4 di 12 Autore: . 841087937 Data creazione 01/06/2017 Soluzione proposta La soluzione proposta prevede la scrittura di alcuni moduli software per l’implementazione delle funzioni elencate al comma precedente. Il sistema che ne deriverà avrà caratteristiche sia di applicazione in sè stessa, per esempio per quanto riguarda la parte di caricamento dei punti acquistati dagli utenti e la sezione di consultazione della situazione di un conto, sia caratteristiche di service per altri moduli software, tipicamente per quelle applicazioni esterne che vorranno utilizzare il meccanismo dell’utilizzo dei punti per consentire la fruizione dei servizi implementati. Nel seguente schema viene illustrata l’architettura software di massima che il sistema dovrà avere. Email ….. 8+ plus D: Funzioni di interfaccia verso i D sistemi che utilizzano i punti Prepagata off-line L A: Carta di credito on-line C SMS e addebito telefonico * Conto Corrente in punti L: sistema di log delle * Codici non ancora transazioni avvenute utilizzati Punti premio C: Funzioni di caricamento dei punti B B: Funzioni di apertura e consultazione dello stato del conto corrente E: interfaccia verso la Community BOL Community BOL Page 5 Pagina 5 di 12 Autore: . 841087937 Data creazione 01/06/2017 Il sistema si baserà sull’impiego di un database relazionale transazionale, necessario a memorizzare i dati riguardanti i cosiddetti “conti correnti in punti” (sottosistema A). Lo stesso database fisico verrà impiegato anche per realizzare il sottosistema di log (sottosistema L), demandato a registrare ogni operazione effettuata sul conto. Dal punto di vista della fruizione via Internet e di orientamento degli utenti in questo ambito, verrà creata una apposita sezione del sito di Numerica focalizzata sulle possibilità date dal sistema. In tale pagina, oltre a dei contenuti informativi sul funzionamento del sistema, saranno disponibili i link per condurre un utente a: aprire un conto corrente in punti caricare dei nuovi punti su un conto corrente consultare lo stato di un conto corrente in punti consultare lo storico delle operazioni effettuate attraverso l’utilizzo di punti (impiego, caricamento) Apertura del conto corrente in punti Partendo dal presupposto che con questo progetto si intende anche valorizzare il patrimonio costituito dall’insieme degli utenti del portale BresciaOnLine (che a tutto aprile 2003 vanta più di 65.000 iscrizioni), il conto potrà essere attivato solamente dagli iscritti al portale, e tutte le operazioni in cui gli utenti dovranno qualificarsi nei confronti del sistema verranno effettuate utilizzando le stesse username e password utilizzate per accedere agli altri servizi del portale BresciaOnLine. In pratica ogni conto dovrà necessariamente corrispondere ad un utente del portale; la corrispondenza verrà creata al momento dell’apertura del conto, che verrà effettuata solamente una tantum. In pratica gli utenti interessati giungeranno su una pagina web in cui verranno invitati a fornire username e password legati alla propria iscrizione al portale, oltre che ad accettare esplicitamente le condizioni poste da Numerica/BresciaOnLine. La risposta del sistema, dopo la verifica di veridicità di username e password, sarà la creazione di un nuovo conto corrente (nel database A), la produzione verso l’utente di una pagina web di conferma dell’avvenuta apertura del corso e l’invio di una mail sia all’utente che ad un amministratore. Verranno anche registrate dal sistema nel database di log L i dati riguardanti data e ora di apertura del conto, indirizzo IP. Sia la mail che la pagina di conferma specificheranno il numero di conto generato dal sistema e abbinato a tale utente. BOL Page 6 Pagina 6 di 12 Autore: . 841087937 Data creazione 01/06/2017 Acquisto e caricamento di nuovi punti sul conto corrente E’ bene premettere che il progetto intende separare da un punto di vista logico l’operazione di acquisto dei punti dall’operazione di caricamento sul conto corrente dei punti stessi. L’acquisto dei punti potrà venire effettuato secondo diverse modalità, anche non utilizzando Internet, ma comunque tramite un esborso in euro da parte degli utenti. Il caricamento dei punti acquistati invece dovrà venire effettuato attraverso delle apposite funzioni realizzate in una sezione del sito web. Sebbene l’acquisto precederà sempre il caricamento dei punti, si preferisce descrivere prima la fase di caricamento per motivi di chiarezza. Caricamento di punti La proposta fornita prevede che vengano generati dei codici numerici, p.e. a 16 cifre, e che a ciascun codice venga attribuito un corrispondente valore in punti. L’elenco dei codici e del relativo valore in punti dovrà poi essere memorizzato nel database A tramite precaricamento da parte di Numerica. L’operazione di acquisto di nuovi punti in pratica si concretizzerà con l’entrata in possesso da parte dell’utente di uno di questi codici. Tale codice dovrà poi essere utilizzato nella fase di caricamento dei punti sul conto corrente. Quando un utente, dopo essersi fatto riconoscere dal sistema tramite specifica di username e password, introdurrà anche il codice a 16 cifre di cui è entrato in possesso con l’operazione di acquisto, il sistema sarà in grado di verificare se tale codice è presente nell’elenco memorizzato nel database A. Nel caso il codice non esista oppure sia stato già utilizzato, il caricamento di punti sarà negato e un messaggio di avvertimento verrà visualizzato all’utente. Nel caso invece che il codice sia presente nell’elenco e non ancora impiegato, allora il sistema sarà in grado di: valutare quanti punti corrispondono a tale codice individuare chi sia l’utente che sta conducendo l’operazione, in quanto già riconosciuto alla fase di login individuare il conto corrente associato all’utente in questione (v’è corrispondenza univoca tra utente e conto) incrementare il saldo dei punti disponibili su tale conto corrente di una quantità pari a quella associata al codice marcare il codice a 16 cifre come “già utilizzato” inserire nel database di log L la registrazione dell’operazione Anche in questo caso il sistema terminerà la procedura restituendo all’utente una pagina di conferma e inviando due analoghe e-mail, una all’utente e una all’amministratore. E’ chiaro che in fase di predisposizione, quando i codici a 16 cifre verranno generati e memorizzati BOL Page 7 Pagina 7 di 12 Autore: . 841087937 Data creazione 01/06/2017 nel database A, non tutte le combinazioni di numeri a 16 cifre dovranno essere considerate valide, per evitare che gli utenti possano incrementare i propri crediti semplicemente inserendo codici composti da 16 cifre a caso e non acquistati tramite i canali predisposti. Acquisto di punti L’acquisto dei punti, che sono un bene di natura virtuale visto che nel sistema l’acquisto coincide con l’entrata in possesso di un codice a 16 cifre non ancora utilizzato, deve poter avvenire secondo diverse modalità. In questa sede si ipotizzano le seguenti: acquisto tramite scambio di SMS acquisto tramite scheda (“gratta e vinci”) acquisto on-line tramite carta di credito Acquisto tramite scheda La modalità prevede la predisposizione di una serie di carte che riportino un codice a 16 cifre nascosto sotto uno strato di materiale che va eliminato da parte dell’utente dopo l’acquisto della carta stessa (“gratta e vinci”). Tali carte potrebbero essere distribuite sul mercato attraverso la vendita negli esercizi pubblici (edicole, bar, ecc.). L’aspetto critico da curare è che ogni codice stampato su una carta deve essere presente all’interno del database A tra i codici disponibili; sarà necessario dunque trovare stretta intesa con chi verrà demandato a produrre fisicamente le carte, in modo da essere certi che non vengano messe in circolazione carte i cui codici non siano presenti nel database A. Acquisto tramite scambio di SMS L’utilizzo di telefoni cellulari per l’acquisto di punti potrebbe avvenire secondo uno scambio di SMS tra l’utente che intende acquistare i punti e un centro servizi di un gestore terzo demandato da Numerica a rilasciare dei codici a 16 cifre in cambio di un addebito su conto telefonico. In pratica l’utente che intende acquistare i punti tramite addebito su conto telefonico dovrebbe inviare un SMS ad un certo numero, specificando per esempio nel testo del messaggio quanti punti intenda acquistare. Alla ricezione dell’SMS il centro servizi dovrebbe reperire un codice a 16 cifre valido e spedirlo in risposta sempre via SMS sul cellulare dell’utente che ne ha fatto richiesta, arrogandosi anche il costo corrispondente all’acquisto tramite addebito su conto telefonico o scalando il credito residuo nel caso di scheda prepagata. Anche in questo caso la criticità risiede nella condivisione di codici validi tra il gestore del centro servizi che li deve inviare via SMS e il sistema di caricamento che li deve trovare presenti nel database A. Acquisto on-line tramite carta di credito I servizi di pagamento con carta di credito via Internet possono essere sfruttati per consentire BOL Page 8 Pagina 8 di 12 Autore: . 841087937 Data creazione 01/06/2017 l’acquisto di punti direttamente sul portale BresciaOnLine/Numerica. E’ possibile progettare una sezione del portale in cui gli utenti, dopo la fase di login, giungano su una pagina in cui sia presente un link che rimanda all’esborso di una certa cifra attraverso un gateway di pagamento. Per il sistema software qui descritto si tratterebbe di implementare un mininegozio che venda punti sotto forma di codici a 16 cifre e si appoggi a terzi per le transazioni di valuta. Il sistema di pagamento vero e proprio (gateway) sarebbe garantito da dei gestori esterni di servizi, come per esempio SSB (Società per i Servizi Bancari, che eroga BankPass adottato anche da Banca Lombarda). Il gateway di pagamento funziona in modo di avvisare il sistema chiamante (il software che implementa il negozio) dopo l’avvenuta transazione sul circuito delle carte di credito; in risposta a ciò il sistema dovrà estrarre un codice a 16 cifre tra quelli predisposti per la vendita on-line e mostrarlo all’utente in una pagina web; lo stesso codice verrà anche inviato via e-mail all’utente. Altre modalità di acquisizione di punti Si possono prevedere anche altre modalità di acquisizione di punti che non siano necessariamente legate ad un acquisto da parte degli utenti, per esempio in fase di lancio dell’iniziativa o per motivi di marketing. Accenniamo per esempio alla possibilità di distribuire dei codici a 16 cifre equivalenti a dei punti in associazione con lo svolgimento di determinati eventi organizzati da BresciaOnLine/Numerica (partecipazioni ai Concorsi – Fotografico Musicale Disegni -, RoadShow del Portale nei Comuni della Provincia, nelle scuole). Oppure prevedere la fornitura di pacchetti di codici a aziende già clienti di Numerica/BresciaOnLine che potrebbero distribuire a loro volta tali codici ai propri clienti in via promozionale. Consultazione dello stato del conto corrente Gli utenti che hanno attivato un conto corrente in punti, potranno in qualsiasi momento consultarne la situazione. La funzione sarà accessibile da una sezione del portale dopo aver passato la fase di login. L’utente potrà visualizzare l’ammontare dei punti disponibili sul proprio conto oppure consultare l’elenco storico delle transazioni di punti avvenute sia come utilizzo che come caricamento. Il sistema produrrà tali elenchi consultando il database L demandato a tenere traccia storica delle operazioni compiute. BOL Page 9 Pagina 9 di 12 Autore: . 841087937 Data creazione 01/06/2017 Interfaccia verso i sistemi di utilizzo dei punti Per consentire al sistema di utilizzo dei microcrediti di crescere nel tempo, è necessario che il sistema software metta a disposizione dei servizi (= interfacce) rivolti ai moduli applicativi esterni che di volta in volta si intendono integrare. Ciò significa che i servizi che saranno erogati sulla base di un impiego di punti non dovranno interrogare o modificare direttamente il database A che mantiene la situazione dei conti correnti, ma dovranno colloquiare con il sottosistema D che si occuperà di rispondere alle richieste di tali moduli esterni e di aggiornare congruentemente i database A e L. L’interfaccia esposta dal sottosistema D potrà essere consultata semplicemente tramite il protocollo HTTP da parte dei moduli esterni e potrebbe seguire il seguente schema: SCALA_PUNTI(module_name, username, n_punti, IP_client, motivazione) In questa forma, SCALA_PUNTI è il nome fittizio dato alla funzione richiamata dai moduli esterni e eseguita dal sottosistema D. Il significato dei parametri è il seguente: module_name: è l’identificativo con cui il modulo esterno si presenta al sottosistema D. Può venire utile per proteggere il sistema da chiamate inopportune, per esempio caricando nel sottosistema D una tabella che associa i possibili valori di “module_name” che devono essere contemplati; si può anche rafforzare la protezione associando in tale tabella a ogni module_name un indirizzo IP considerato valido; in fase di risposta il sottosistema D considererà le richieste che specificano un certo “module_name” solo se provenienti da un indirizzo IP coincidente con quello presente in tabella username: è lo username che identifica all’interno della community BresciaOnLine l’utente che vuole fruire del servizio tramite un pagamento in punti; sarà cura del modulo esterno che inoltra la chiamata di recuperare tale dato n_punti: specifica il numero di punti che devono essere tolti dal conto di “username” IP_client: specifica l’indirizzo IP utilizzato dall’utente “username” per la fruizione del servizio implementato dal modulo esterno; va registrato nel database di log L motivazione: è un dato descrittivo che il servizio esterno può passare al sottosistema D in modo che nel sistema di log L venga riportata anche la motivazione dell’impiego dei punti Il sottosistema D, una volta ricevuta una richiesta da un modulo esterno secondo lo schema succitato, dovrà seguire i seguenti passi: 1. recuperare l’indirizzo <ip_caller> IP del client http che ha eseguito la richiesta (dovrebbe coincidere con l’indirizzo del server su cui è eseguito il modulo software che implementa il servizio) 2. verificare se nella tabella interna (ad esso nota ) esista un record in cui compaia il valore del parametro in ingresso module_name associato all’indirizzo IP <ip_caller> BOL Page 10 Pagina 10 di 12 Autore: . 841087937 Data creazione 01/06/2017 individuato al punto1; nel caso tale record esista, il sottosistema D considera la chiamata plausibile e prosegue con il punto 3; in caso contrario deve ritornare al chiamante un segnale negativo (KO1) 3. recuperare il numero di conto corrente legato all’utente corrispondente al valore del parametro in ingresso username; nel caso tale conto corrente esista il sottosistema D deve proseguire con il punto 4; in caso contrario deve ritornare al chiamante un segnale negativo (KO2) 4. verificare che il saldo in punti del conto corrente individuato al punto 3 sia non minore del numero di punti specificati dal valore del parametro in ingresso n_punti; in tal caso il sottosistema D deve proseguire con il punto 5; in caso contrario deve ritornare al chiamante un segnale negativo (KO3) 5. aprire una transazione che agisca sui database A ed L per decrementare il saldo del conto corrente di una quantità pari al valore di n_punti e inserire un record nel database L riportando: data e ora di compimento dell’operazione numero di conto corrente interessato numero di punti movimentati segno della transazione (in questo caso decremento) indirizzo IP del client che usufruirà del servizio motivazione dell’utilizzo dei punti nome del modulo che ha richiesto l’impiego dei punti nel caso la transazione vada a buon fine il sottosistema D ritornerà al chiamante un segnale positivo (OK) e in caso contrario un segnale negativo (KO4); in ogni caso terminerà la procedura. Un esempio concreto di chiamata al sottosistema D da parte dei moduli esterni potrebbe avvenire attraverso un URL del tipo: http://www.numerica.it/or4/or?uid=microcrediti.gateway.scala_punti&module_name=8piu&usernam e=ivangenovesi&n_punti=5&ip_client=195.206.1.61&motivazione=acquisto_inserzione_45678 Sarà compito dei diversi moduli esterni poi ricevere la risposta fornita dal sottosistema D e continuare nel proprio lavoro in base al valore del segnale di ritorno (OK o KO). BOL Page 11 Pagina 11 di 12 Autore: . 841087937 Data creazione 01/06/2017 Esempio di utilizzo: il servizio Ottopiù. Un servizio già esistente fornito da Numerica sul portale BresciaOnLine, che potrebbe essere assunto come software pilota nella messa a punto del sistema di utilizzo dei microcrediti, è Ottopiù. Di seguito viene delineata la modalità con cui tale servizio potrebbe essere adattato per integrarsi con il sistema dei microcrediti; è evidente comunque che ogni tipo di servizio che si intende aggiungere a questo paniere dovrà essere analizzato in dettaglio in separata sede. Come descritto al punto “Situazione attuale”, la consultazione degli annunci della testata Ottopiù pubblicati via Internet è completamente gratuita, non è necessaria nemmeno l’iscrizione alla community di BresciaOnLine. Una ipotesi da prendere in considerazione potrebbe essere di mantenere la consultazione del contenuto degli annunci in maniera gratuita, ma obbligare gli utenti all’impiego di un certo numero di punti (o microcrediti) nel caso si desideri venire a conoscenza dei dati associati ad un annuncio e necessari a contattare il mittente dell’annuncio stesso (nominativo, telefono, indirizzo e-mail). Per giungere a questa situazione sarà necessario ovviamente agire sul software che implementa il servizio Ottopiù. In particolare, si dovrà per prima cosa modificare il modulo che produce in visualizzazione gli annunci e sostituire la parte che mostra i dati sensibili (nominativo, telefono ed email) con un link che inviti l’utente ad acquistare tale annuncio, mettendo in evidenza anche il numero di punti richiesti per l’acquisto. Quando l’utente farà click su tale link, sarà ancora una nuova funzione del software Ottopiù che dovrà verificare se l’utente è già passato dalla fase di login; in tal caso Ottopiù sarà a conoscenza dello username associato all’utente corrente, nel caso contrario dovrà rimandare l’utente alla maschera di login. In ogni caso l’acquisto dell’annuncio potrà proseguire solo in presenza di utente loggato e la nuova procedura Ottopiù continuerà invocando il sottosistema D come descritto al punto precedente, avendo anche a disposizione tutti i parametri da associare alla chiamata (module_name, username, n_punti, IP_client, motivazione). Infine il modulo Ottopiù dovrà attendere la risposta dal sottosistema D e comportarsi di conseguenza aprendo una finestra pop-up con appropriati contenuti. Se la risposta ha dato un esito negativo (KO), Ottopiù dovrà segnalare all’utente l’impossibilità di concludere l’acquisto specificandone anche il motivo (KO1=modulo non abilitato; KO2= utente non provvisto di conto; KO3= credito residuo non sufficiente all’acquisto) e magari fornendo dei link per condurre l’utente a porre rimedio ai problemi riscontrati; per esempio un link alla pagina di apertura del conto nel caso di KO2 o alla pagina di acquisto o caricamento dei punti nel caso di KO3. Se la risposta fornita dal sottosistema D contiene un esito positivo, allora la procedura Ottopiù non dovrà fare altro che mostrare nella pop-up il testo dell’annuncio completo dei dati sensibili e inviare anche lo stesso contenuto via e-mail all’utente. BOL Page 12 Pagina 12 di 12