MonetaWeb Hosted 3D Secure HTTP
1. Il titolare carta effettua un acquisto sul sito del Merchant 2. I dati del pagamento sono trasmessi al server del Merchant 3. Il server del Merchant inizializza il pagamento con un messaggio HTTP 4. MonetaWeb valida l inizializzazione e restituisce il PaymentID e la URL della Hosted Payment Page 5. Il server del Merchant redirige il titolare carta verso la HPP usando come parametro il PaymentID 6. Il titolare carta riempie la form con i dati sensibili della carta di credito 7. MonetaWeb storicizza i dati del pagamento e invia una Verify Enrollment Request (VEReq) ai server dei circuiti Visa/MasterCard 7A. I server di Visa/MasterCard redirigono la richiesta verso l Issuer 7B. L Issuer replica verso i Server di Visa/MasterCard con l esito dell enrollment e la URL dell Access Control Server (ACS) 2
8. Visa/MasterCard rispondono con una Verify Enrollment Response (VERes) 8A. MonetaWeb redirige il titolare carta verso l ACS dell Issuer con la Payment Authentication Request (PAReq) 8B. L ACS risponde con la Payment Authentication Response (PARes) 9. MonetaWeb invia in modalità server to server l esito del pagamento alla ResponseURL del Merchant 10. MonetaWeb legge la ResultURL e il PaymentID stampati a video dalla ResponseURL 11. Monetaweb redirige il titolare carta verso la ResultURL con il PaymentID come parametro 3
Protocollo: HTTP Metodo: POST Content-Type: URL Encoded (legacy): application/www-form-urlencoded or application/x-www-form-urlencoded 4
Init Servlet: E la servlet esposta per l inizializzazione dei pagamenti in modalità hosted. Riceve in ingresso i dati relativi al pagamento e restituisce un ID e la url della pagina di pagamento. URL dell ambiente di TEST: https://test.monetaonline.it/monetaweb/hosted/init/http URL dell ambiente di PRODUZIONE: https://www.monetaonline.it/monetaweb/hosted/init/http 5
Parametri di inizializzazione: Nome Descrizione Tipo Lunghezza id id associato al terminale char 8 password password associata all id terminale varchar 50 action 4 (richiesta di autorizzazione) char 2 amt Importo della transazione (es: 1.00) con 2 cifre decimali decimal 18,2 currencycode 978 (euro) langid Lingua della pagina di pagamento (ITA, USA, SPA, FRA, DEU) char 3 responseurl Pagina di ricezione della risposta (es: http://www.site.it/notify.jsp) varchar 2048 errorurl Pagina di errore (es: http://www.merchant.it/error.jsp) varchar 2048 trackid Riferimento Operazione, campo alfanumerico lungo al massimo 18 caratteri (può contenere solo lettere e numeri e deve essere varchar 18 univoco in assoluto) udf1 Descrizione del pagamento (opzionale) varchar 255 udf2 Campo utilizzabile per prepopolare i campi Titolare Carta e Email per conferma separando i due valori con il carattere punto varchar 255 e virgola (es. mario rossi;mario.rossi@mail.it ) udf3 Campo riservato - - udf4 Campo libero varchar 255 udf5 Campo riservato - - Esempio di inizializzazione HTTP: id=99999999&password=99999999&action=4&amt=1.00¤cycode=978&langid=ita& responseurl=http://www.merchant.it/notify.jsp&errorurl=http://www.merchant.it/error.jsp& trackid=trck0001&udf1=descrizione 6
Parametri di risposta all inizializzazione: Nome Descrizione Tipo Lunghezza paymentid Identificativo univoco dell ordine generato da MonetaWeb char 18 url Url della pagina di pagamento verso cui ridirigere il titolare carta varchar 50 Esempio di risposta alla init: 8508636460121029:http://www.monetaonline/monetaweb/hosted/page 7
Parametri di risposta al messaggio HTTP: Nome Descrizione Tipo Lunghezza paymentid Identificativo univoco dell ordine generato da MonetaWeb char 18 result Esito della transazione (es: APPROVED, CAPTURED, ecc.) varchar 50 auth Codice di autorizzazione, valorizzato se la transazione è stata autorizzata varchar 6 tranid Identificativo univoco della transazione generato da MonetaWeb char 18 trackid Riferimento Operazione inviato dal commerciante varchar 18 udf1 Descrizione del pagamento, se valorizzato dal commerciante varchar 255 udf2 Come valorizzato dal commerciante varchar 255 udf3 Campo utilizzato per restituire i primi 8 numeri del pan carta inserito dal titolare char 8 udf4 Come valorizzato dal commerciante varchar 255 udf5 Campo utilizzato in ambiente di produzione per restituire l'rrn scambiato con i Circuiti char 12 responsecode Codice di risposta, che può assumere i seguenti valori: 00 Transazione autorizzata e confermata (contabilizzazione implicita) 000 Transazione autorizzata (contabilizzazione esplicita) Qualsiasi valore diverso da '00' e '000' indica una transazione non autorizzata. char 3 8
Esempio pagina di ricezione della risposta <% // parsing del messaggio di risposta long paymentid = Long.parseLong(request.getParameter("paymentid")); String result = request.getparameter("result"); String auth = request.getparameter("auth"); long ref = Long.parseLong(request.getParameter("ref")); long tranid = Long.parseLong(request.getParameter("tranid")); String trackid = request.getparameter("trackid"); String details = request.getparameter("udf1"); String responsecode = request.getparameter("responsecode"); // storicizzazione dei dati // redirezione alla pagina di visualizzazione dell'esito out.println("redirect=" + "http://www.merchant.it/result.jsp" + "?paymentid=" + paymentid); %> 9
Comportamento dell ambiente di TEST: L ambiente di TEST di MonetaWeb accetta qualsiasi carta, purchè valida (circuiti abilitati di default, VISA e MASTERCARD). L esito della transazione viene determinato in base all importo valorizzato: Importo = 9999 transazione negata Importo <> 9999 transazione autorizzata 10