Ti interessa utilizzare Stripe Billing, Tax, sconti, spedizione o conversione di valuta?
Stiamo sviluppando un’integrazione di Payment Element che gestisce abbonamenti, imposte, sconti, spedizioni e conversione di valuta. Per ulteriori informazioni, consulta la guida Creare una pagina di pagamento.
Migrare le carte esistenti e l’integrazione API Charges
La migrazione del flusso di pagamento può essere scoraggiante. È consigliabile adottare in modo incrementale l’API Payment Intents e utilizzarla insieme all’API Charges. A questo scopo, puoi frazionare le fasi della migrazione come segue:
Se applicabile, migra il codice che legge le proprietà Charge in modo da ottenere un percorso di lettura coerente tra gli addebiti creati dall’API Charges e quelli creati dall’API Payment Intents. In questo modo, ottieni un’integrazione di lettura compatibile con le integrationi nuove e precedenti.
Effettua la migrazione della tua integrazione API Charges esistente su Web, iOS e Android per utilizzare l’API Payment Intents.
Sebbene l’API Payment Intents funzioni su tutte le versioni dell’API, ti consigliamo di eseguire l’aggiornamento alla versione più recente dell’API. Se decidi di utilizzare una versione dell’API precedente all’11-02-2019, tieni presente le seguenti due modifiche mentre esamini gli esempi di codice:
requires_source è stato rinominato in requires_payment_method
requires_source_action è stato rinominato in requires_action
Inoltre, se utilizzi uno dei nostri SDK, esegui l’aggiornamento alla versione più recente della libreria per utilizzare l’API Payment Intents.
Migrare i flussi di pagamento una tantum
Un’integrazione creata con Stripe.js ed Elements consiste delle seguenti fasi:
Registrare l’intenzione di incassare il pagamento sul lato server
Raccogliere i dati di pagamento sul lato client
Avviare la creazione del pagamento
Evadere l’ordine del cliente sul lato server
Fase 1: registrare l’intenzione di incassare il pagamento sul lato server
Fase 2: raccogliere i dati di pagamento sul lato client
Utilizza la funzione confirmCardPayment, che raccoglie i dati di pagamento e li invia direttamente a Stripe.
Prima
Dopo
stripe.createToken(
cardElement
).then(function(token){// Send token to server});
stripe.confirmCardPayment(INTENT_SECRET_FROM_STEP_1,{
payment_method:{card: cardElement}}).then(function(result){if(result.error){// Display error.message in your UI.}else{// The payment has succeeded// Display a success message}});
Fase 3: avviare la creazione del pagamento
Nella tua integrazione esistente, la fase finale consiste nell’utilizzare le informazioni di pagamento tokenizzate per creare un addebito sul server. Questo non è più necessario perché la funzione confirmCardPayment richiamata nella fase precedente avvia la creazione dell’addebito.
Con la conferma automatica, l’addebito viene creato in modo asincrono in base alle azioni del cliente sul lato client; devi quindi monitorare i webhook per sapere quando il pagamento viene completato correttamente. Per eseguire operazioni come l’evasione degli ordini dopo che il pagamento di un cliente è andato a buon fine, implementa il supporto per i webhook e monitora l’evento payment_intent.succeeded.
Prima
Dopo
Se l’addebito riesce, evadi l’ordine.
Iscriviti al webhook payment_intent.succeeded ed evadi l’ordine nel gestore webhook.
Ora che hai effettuato la migrazione, utilizza le carte di test della sezione seguente per verificare che la tua integrazione aggiornata gestisca l’autenticazione 3D Secure.
Migrare l’integrazione che salva le carte negli oggetti Customer
Un’integrazione dell’API Payment Intents che raccoglie i dati delle carte nel flusso di pagamento consiste delle seguenti fasi:
Registrare l’intenzione di incassare il pagamento sul lato server
Raccogliere i dati di pagamento sul lato client
Avviare la creazione del pagamento
Evadere l’ordine del cliente sul lato server
Fase 1: registrare l’intenzione di incassare il pagamento sul lato server
Crea un PaymentIntent sul tuo server. Imposta setup_future_usage su off_session se intendi addebitare i pagamenti agli utenti principalmente quando sono scollegati dalla tua applicazione o su on_session se prevedi di effettuare gli addebiti quando sono collegati all’applicazione. Se intendi utilizzare la carta sia per i pagamenti all’interno che all’esterno della sessione, usa off_session. Se specifichi il parametro setup_future_usage insieme a un ID cliente, il PaymentMethod risultante verrà salvato per questo cliente dopo che il PaymentIntent è stato confermato e che il cliente ha effettuato tutte le azioni richieste. Infine, rendi il PaymentIntent accessibile sul lato client.
Fase 2: raccogliere i dati di pagamento sul lato client
Utilizza la funzione confirmCardPayment, che raccoglie i dati di pagamento e li invia direttamente a Stripe.
Prima
Dopo
stripe.createToken(// or stripe.createSource
cardElement
).then(function(token){// Send token to server});
stripe.confirmCardPayment('{{INTENT_SECRET_FROM_STEP_1}}',{
payment_method:{card: cardElement},}).then(function(result){if(result.error){// Display error.message in your UI.}else{// The payment has succeeded// Display a success message}});
Infine, associa la modalità di pagamento (paymentIntent.payment_method) al cliente.
Nella tua integrazione esistente, la fase finale consiste nell’utilizzare le informazioni di pagamento tokenizzate per creare un addebito sul server. Questo non è più necessario perché la funzione confirmCardPayment richiamata nella fase precedente avvia la creazione dell’addebito.
Con la conferma automatica, l’addebito viene creato in modo asincrono in base alle azioni del cliente sul lato client; devi quindi monitorare i webhook per sapere quando il pagamento viene completato correttamente. Per eseguire operazioni come l’evasione degli ordini dopo che il pagamento di un cliente è andato a buon fine, implementa il supporto per i webhook e monitora l’evento payment_intent.succeeded.
Prima
Dopo
Se l’addebito riesce, evadi l’ordine.
Iscriviti al webhook payment_intent.succeeded ed evadi l’ordine nel gestore webhook.
Ora che hai effettuato la migrazione, utilizza le carte di test della sezione seguente per verificare che la tua integrazione aggiornata gestisca l’autenticazione 3D Secure.
Accedere alle modalità di pagamento salvate
Per visualizzare le carte, le origini e i PaymentMethods precedentemente salvati del cliente, crea un elenco delle modalità di pagamento anziché leggere la proprietà sources dell’oggetto Customer. Questa operazione è richiesta perché i nuovi PaymentMethods aggiunti a un cliente non saranno duplicati nella proprietà Sources dell’oggetto Customer.
È importante testare a fondo la tua integrazione per assicurarti di gestire correttamente le carte che richiedono un’autenticazione aggiuntiva e le carte che non lo fanno. Utilizza questi numeri di carta in modalità test con qualsiasi data di scadenza futura e qualsiasi codice CVC a tre cifre per convalidare la tua integrazione quando è richiesta l’autenticazione e quando non è richiesta.
Numero
Autenticazione
Descrizione
Obbligatoria al momento della configurazione o della prima transazione
Questa carta di test richiede l’autenticazione per i pagamenti una tantum. Tuttavia, se la configuri utilizzando l’API Setup Intents e usi la carta salvata per i pagamenti successivi, non è richiesta un’ulteriore autenticazione.
Obbligatoria
Questa carta di test richiede l’autenticazione per tutte le transazioni.
Obbligatoria
Questa carta di test richiede l’autenticazione, ma i pagamenti verranno rifiutati con un codice di errore insufficient_funds dopo un’autenticazione riuscita.
Supportata
Questa carta di test supporta l’autenticazione tramite 3D Secure 2, ma non la richiede. I pagamenti che utilizzano questa carta non richiedono un’ulteriore autenticazione in modalità di test, a meno che l’autenticazione non sia richiesta dalle tue regole Radar in modalità di test.
Utilizza queste carte nella tua applicazione o la demo di pagamenti per vedere le differenze di comportamento.