MonetaWeb Hosted 3D Secure HTTP MonetaWeb - Hosted 3D Secure HTTP 1. 2. 3. 4. 5. 6. 7. Il titolare carta effettua un acquisto sul sito del Merchant I dati del pagamento sono trasmessi al server del Merchant Il server del Merchant inizializza il pagamento con un messaggio HTTP (vedi pag. 4) MonetaWeb valida l’inizializzazione e restituisce il PaymentID e la URL della Hosted Payment Page Il server del Merchant redirige il titolare carta verso la HPP usando come parametro il PaymentID Il titolare carta riempie la form con i dati sensibili della carta di credito 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 MonetaWeb - Hosted 3D Secure HTTP 8. 9. 10. 11. 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) MonetaWeb invia in modalità “server to server” l’esito del pagamento alla ResponseURL del Merchant MonetaWeb legge la ResultURL e il PaymentID “stampati a video” dalla ResponseURL (vedi pag. 7) Monetaweb redirige il titolare carta verso la ResultURL con il PaymentID come parametro 3 MonetaWeb - Hosted 3D Secure HTTP Protocollo: HTTP Metodo: POST Content-Type: URL Encoded (legacy): application/www-form-urlencoded or application/x-www-form-urlencoded Servlet per l’inizializzazione del pagamento con un messaggio HTTP : TEST: https://test.monetaonline.it/monetaweb/hosted/init/http PRODUZIONE: https://www.monetaonline.it/monetaweb/hosted/init/http Esempio messaggio 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 4 MonetaWeb - Hosted 3D Secure HTTP Parametri di chiamata del messaggio HTTP: id password action amt currencycode langid responseurl errorurl trackid udf1 udf2 udf3 udf4 Id associato al terminale Password associata all’id terminale Fisso a ‘4’ (richiesta autorizzazione) Importo della transazione (es: 1.00) con 2 decimali al massimo Fisso a ‘978’ (valuta euro) Lingua della pagina di pagamento (ITA, USA, SPA, FRA, DEU) Pagina di ricezione della risposta (es: http://www.merchant.it/notify.jsp) Pagina di errore (es: http://www.merchant.it/error.jsp) Riferimento Operazione, alfanumerico obbligatorio lungo massimo18 caratteri (può contenere solo lettere e numeri e deve essere univoco in assoluto) Descrizione del pagamento (opzionale) Campo libero o utilizzabile per prepopolare i campi “Titolare Carta” e “Email per conferma” separando i due valori con il carattere punto e virgola (es. “mario rossi;[email protected]”) Campo libero Campo libero 5 MonetaWeb - Hosted 3D Secure HTTP Esempio di risposta alla init: 8508636460121029:https://www.monetaonline.it/monetaweb/hosted/page Parametri di risposta alla init: Payment Id Url Id associato alla sessione di pagamento Url della pagina di pagamento verso cui ridirigere il titolare carta Parametri di risposta al messaggio HTTP: paymentid result auth tranid trackid udf1 udfx (2-4) udf5 (RRN) responsecode Identificativo univoco dell’ordine generato da MonetaWeb Esito della transazione (es: APPROVED, CAPTURED, ecc.) Codice di autorizzazione, valorizzato se la transazione è stata autorizzata (‘999999’ se autorizzata in test) Identificativo univoco della transazione generato da MonetaWeb Riferimento Operazione inviato dal commerciante Descrizione del pagamento, se valorizzato dal commerciante Come popolati dal merchant Riferimento univoco della transazione generato dal Sistema Autorizzativo (da utilizzare in caso di contabilizzazione esplicita a mezzo file) Codice di risposta (es: ‘00’ o ‘000’ se autorizzata) 6 MonetaWeb - Hosted 3D Secure HTTP 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); %> 7