MonetaWeb Hosted 3D Secure XML
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 XML (vedi pag. 4) 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 (vedi pag. 7) 11. Monetaweb redirige il titolare carta verso la ResultURL con il PaymentID come parametro 3
Servlet per l inizializzazione del pagamento con un messaggio XML : https://www.monetaonline.it/mpi2/servlet/paymentinitxmlservlet Esempio messaggio XML: <id>99999999</id><password>99999999</password><action>4</action><amt>1.00</amt><currency code>978</currencycode><langid>ita</langid><responseurl>http://www.merchant.it/notify.jsp</respo nseurl><errorurl>http://www.merchant.it/error.jsp</errorurl><trackid>trck0001</trackid><udf1>descr izione</udf1> 4
Parametri di chiamata del messaggio XML: id Alias associato al terminale password Alias associato al terminale action Fisso a 4 (richiesta autorizzazione) amt Importo della transazione (es: 1.00) currencycode Fisso a 978 (valuta euro) langid Lingua della pagina di pagamento (ITA, USA, SPA, FRA, DEU) responseurl Pagina di ricezione della risposta (es: http://www.merchant.it/notify.jsp) errorurl Pagina di errore (es: http://www.merchant.it/error.jsp) trackid Riferimento Operazione, campo alfanumerico lungo al massimo 18 caratteri (può contenere solo lettere e numeri e deve essere univoco in assoluto) udf1 Descrizione del pagamento (opzionale) 5
Parametri di risposta al messaggio XML: paymentid result auth ref tranid trackid udf1 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) Riferimento della transazione generato dal Sistema Autorizzativo Identificativo della transazione generato da MonetaWeb Riferimento Operazione inviato dal commerciante Descrizione del pagamento, se valorizzato dal commerciante Codice di risposta (es: 00 o 000 se autorizzata) 6
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