Versione 3
Creazione form di pagamento
Il form raccolta dati carta così come i bottoni dei metodi di pagamento alternativi (APM) vengono restituiti dall'API:
Per richiamare la versione 3 di XPay Build, è necessario valorizzare nell'API sopra riportata il parametro "version" con "3".
La chiamata restituisce un oggetto, contenente gli iframe corrispondenti al metodo di pagamento tramite carta e agli APM attivi sul terminale dell'esercente. Di seguito un'esempio in formato JSON:
Ogni iframe rappresenta un bottone che permette al cliente di scegliere il metodo di pagamento desiderato, questi componenti devono essere quindi mostrati nella pagina di checkout del negozio.
La gestione del pagamento subisce delle variazione tra carte e APM, di seguito le indicazioni.
Pagamento tramite carta
Una volta cliccato sul metodo di pagamento tramite carta, viene restituito, tramite un evento, un oggetto contenente i seguenti dati:
- "event": parametro valorizzato con "BUILD_FLOW_STATE_CHANGE".
- "state": parametro valorizzato con "CARD_DATA_COLLECTION".
- "fieldSet": oggetto contenente gli iframe dei singoli campi necessari per l'inserimento dei dati carta, di seguito il dettaglio.
OGGETTO FIELDSET
NOME | DESCRIZIONE | FORMATO | |||||||||||||||||||||||||||||||||||||
|
Di seguito un esempio dell'oggetto in formato JSON dell'oggetto "fieldSet":
Sulla pagina HTML, è necessario inserire dinamicamente ciascun campo dall'array "fields" ricevuto.
ATTENZIONE: È necessario includere, accompagnata da un elemento HTML checkbox, l'informativa sulla privacy di Nexi, disponibile al link https://www.nexi.it/privacy/xpay.html. Si consiglia di incorporare direttamente il link indicato all'interno della pagina in modo che il testo rimanga sempre aggiornato.
Inizializzazione SDK
In base alle azioni del cliente, una volta che uno dei campi carta è stato inserito correttamente, vengono generati diversi eventi sulla pagina HTML principale. Gli eventi permettono di fornire un feedback adeguato al cliente per informarlo sulla correttezza dei dati inseriti. La cattura di tali eventi è resa più semplice grazie ad un SDK fornito da Nexi.
Inserire questa dichiarazione in un punto qualsiasi della pagina, sostituendo "nexiDomain" con il dominio di test o di produzione di XPay:
Successivamente, impostare le azioni da eseguire in ognuna delle seguenti situazioni:
Bottone di conferma dati inseriti
I dati della carta, inseriti dal cliente negli iframe interni, vengono memorizzati sul server Nexi solo nel momento in cui il cliente clicca sul pulsante di conferma. Questo pulsante deve essere sviluppato in autonomia sulla pagina di checkout del sito ecommerce.
Al pulsante deve essere associato un evento "onClick" che richiama la funzione "confirmData":
La funzione "confirmData" può generare i seguenti cambi di stato:
- PAYMENT_COMPLETE: il pagamento è stato concluso in uno step. Non sono necessarie ulteriori operazioni. Viene restituito l'oggetto "operation" contenente il dettaglio dell'operazione.
- READY_FOR_PAYMENT: questo evento conferma che è possibile procedere con il pagamento richiamando l'API:
POST /build/finalize_payment
La risposta all'API sopra riportata varia in base alle casistiche di seguito riportate:
- Autenticazione 3D Secure: il pagamento richiede l'autenticazione 3D Secure da parte del titolare carta. Vengono restituiti i parametri:
- "url": è necessario reindirizzare il cliente verso l'indirizzo contenuto nel campo, dove il titolare carta ha la possibilità di eseguire l'autenticazione ed autorizzare il pagamento. Al termine dell'autenticazione l'esito del pagamento viene restituito verso i parametri di avvio "resultUrl", "notificationUrl" ed eventualmente "cancelUrl".
- "state": valorizzato con REDIRECTED_TO_EXTERNAL_DOMAIN".
- Esito pagamento: la transazione non richiede autenticazione 3D Secure da parte del titolare carta, il pagamento viene quindi eseguito. Vengono restituiti i parametri:
- "operation": oggetto contenente il dettaglio dell'operazione.
- "state": valorizzato con "PAYMENT_COMPLETE".
Modifiche grafiche form raccolta dati carta (CSS)
È possibile modificare il form di raccolta dati carta inserendo il link ad un file CSS. Il file deve includere la specifica dello stile da applicare a tutti i tag di input contenuti nelle pagine degli iframe. Inoltre, è possibile differenziare lo stile per ciascuno dei campi della pagina di raccolta dati della carta. Di seguito un esempio:
Pagamento tramite APM
Una volta cliccato sul metodo di pagamento alternativo, viene restituito, tramite un evento, un oggetto contenente i seguenti dati:
- "sessionId": valorizzato con l'identificativo della sessione di pagamento.
- "url": indirizzo necessario per il reindirizzamento verso la pagina di cassa del metodo di pagamento alternativo. Al termine del pagamento l'esito viene restituito verso i parametri di avvio "resultUrl", "notificationUrl" ed eventualmente "cancelUrl".
API Aggiuntive
- Annullo sessione: POST /build/cancel
- Interrogazione stato sessione: GET /build/state
- Interrogazione dati carta: GET /build/cardData
- Controllo integrità: GET /build/integrity
NOTA:
La soluzione XPay Build non è compatibile con la funzionalità DCC.