Passa al contenuto
Crea account
o
Accedi
Il logo della documentazione Stripe
/
Chiedi all'IA
Crea un account
Accedi
Inizia
Pagamenti
Ricavi
Per piattaforme e marketplace
Gestione del denaro
Strumenti di sviluppo
Panoramica
Informazioni sui pagamenti con Stripe
Eseguire l'upgrade dell'integrazione
Analisi dei dati sui pagamenti
Pagamenti online
PanoramicaTrovare il caso d'uso più adattoManaged Payments
Utilizzare Payment Links
Creare una pagina di pagamento
Creare un'integrazione iniziale
Creare un'integrazione in-app
Metodi di pagamento
Aggiungere modalità di pagamento
Gestire i metodi di pagamento
Pagare più velocemente con Link
Interfacce di pagamento
Payment Links
Checkout
Elements per il Web
Elements in-app
Scenari di pagamento
Flussi di pagamento personalizzati
    Panoramica
    Pagamenti per clienti esistenti
    Autorizzare e acquisire un pagamento separatamente
    Creare un'esperienza di conferma in due passaggi
    Raccogliere i dati di pagamento prima di creare un intento
    Finalizzare i pagamenti sul server
    Accettare ordini per posta e per telefono (MOTO)
    Carte statunitensi e canadesi
      Salvare carte senza autenticazione
      Eseguire l'upgrade per gestire l'autenticazione
    Inoltra i dati della carta agli endpoint dell'API di terze parti
    Voci riga di pagamenti
Acquisizione flessibile
Orchestrazione
Pagamenti di persona
Terminal
Altri prodotti Stripe
Financial Connections
Criptovaluta
Climate
Pagina inizialePagamentiCustom payment flowsUS and Canadian cards

Eseguire la migrazione dell'integrazione di base della carta

Esegui la migrazione a un'integrazione in grado di gestire richieste delle banche per l'autenticazione delle carte.

Copia pagina

Se hai rispettato la guida sui pagamenti con carta senza autenticazione bancaria, la tua integrazione crea pagamenti che vengono rifiutati quando la banca chiede al cliente di autenticare l’acquisto.

Se inizi a rilevare un discreto numero di pagamenti non andati a buon fine, come quello nella Dashboard di seguito, o associati al codice di errore requires_action_not_handled nell’API, aggiorna l’integrazione di base per gestirli anziché rifiutarli.

Dashboard che mostra un pagamento non riuscito con l'indicazione che la banca ha richiesto l'autenticazione del pagamento

Utilizza questa guida per scoprire come aggiornare l’integrazione creata con l’aiuto della guida precedente in modo da aggiungere codice lato server e client per chiedere al cliente di autenticare il pagamento mostrando una finestra modale.

Nota

Fai riferimento a un esempio completo di questa integrazione su GitHub.

Verifica se il pagamento richiede l'autenticazione
Lato server

Apporta due modifiche all’endpoint sul server che crea il PaymentIntent:

  1. Rimuovi il parametro error_on_requires_action in modo che i pagamenti che richiedono l’autenticazione non abbiano più esito negativo. Lo stato PaymentIntent diventa requires_action.
  2. Aggiungi il parametro confirmation_method per indicare che vuoi riconfermare (manualmente) in modo esplicito il pagamento sul server dopo aver gestito le richieste di autenticazione.
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ -d payment_method_types[]=card \ -d confirm=true \ -d error_on_requires_action=true \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d confirmation_method=manual

Quindi aggiorna la funzione “generate response” per gestire lo stato requires_action affinché non venga generato un errore:

Command Line
curl
# If the request succeeds, check the # PaymentIntent's `status` and handle # its `next_action`.

Chiedi al cliente di eseguire l'autenticazione
Lato client

Ora aggiorna il codice lato cliente per fare in modo che Stripe mostri una finestra modale se il cliente deve eseguire l’autenticazione.

Usa stripe.handleCardAction quando un PaymentIntent ha lo stato requires_action. Se l’operazione va a buon fine, il PaymentIntent avrà lo stato requires_confirmation e dovrai confermare nuovamente il PaymentIntent sul server per completare il pagamento.

const handleServerResponse = async (responseJson) => { if (responseJson.error) { // Show error from server on payment form } else if (responseJson.requiresAction) { // Use Stripe.js to handle the required card action const { error: errorAction, paymentIntent } = await stripe.handleCardAction(responseJson.clientSecret); if (errorAction) { // Show error from Stripe.js in payment form } else { // The card action has been handled // The PaymentIntent can be confirmed again on the server const serverResponse = await fetch('/pay', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ payment_intent_id: paymentIntent.id }) }); handleServerResponse(await serverResponse.json()); } } else { // Show success message } }

Riconferma il PaymentIntent
Lato server

Utilizzando lo stesso endpoint configurato in precedenza, riconferma il PaymentIntent per finalizzare il pagamento ed evadere l’ordine. Il tentativo di pagamento non va a buon fine e torna allo stato requires_payment_method se la riconferma non avviene entro un’ora.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST"

Testa l'integrazione

Usa le nostre carte di test in una sandbox per verificare che la tua integrazione sia stata correttamente aggiornata. Stripe visualizza una pagina di autenticazione fittizia all’interno della finestra modale in una sandbox che ti consente di simulare un tentativo di autenticazione con esito positivo o negativo. In modalità live, la banca controlla l’interfaccia utente di ciò che è visualizzato all’interno della finestra modale.

NumeroDescrizione
La transazione ha esito positivo e il pagamento viene elaborato immediatamente.
La transazione ha sempre esito negativo con un codice di rifiuto insufficient_funds.
Richiede l’autenticazione, che in questa integrazione non andrà a buon fine restituendo il codice di rifiuto authentication_not_handled.
Questa pagina è stata utile?
SìNo
Hai bisogno di aiuto? Contatta l'assistenza clienti.
Partecipa al nostro programma di accesso anticipato.
Dai un'occhiata al nostro registro delle modifiche.
Domande? Contattaci.
LLM? Leggi llms.txt.
Realizzato da Markdoc