# Migrare le modalità di pagamento nella Dashboard Attiva diverse modalità di pagamento su Checkout tramite la Dashboard. # Pagina in hosting > This is a Pagina in hosting for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/dashboard-payment-methods?payment-ui=stripe-hosted. Se modifichi l’integrazione in modo da richiamare i metodi di pagamento preferiti dalla Dashboard, al completamento della transazione Stripe mostrerà ai clienti tutti i metodi di pagamento compatibili in base alla valuta scelta o a eventuali limitazioni dei metodi di pagamento, come l’importo massimo della transazione. In più, Stripe presenta i metodi di pagamento più pertinenti per ciascun cliente in base alla posizione e alla valuta utilizzata. La pagina di pagamento dà la priorità alla visualizzazione dei metodi di pagamento noti per aumentare la conversione per la posizione del cliente, mentre i metodi di pagamento con priorità più bassa sono nascosti sotto un menu extra. In fase di completamento della transazione, i clienti vedranno più metodi di pagamento adatti a loro a seconda di dove si trovano e della valuta che utilizzano, ma potranno comunque scegliere un metodo di pagamento diverso dal menu extra. ## Aggiornare l'integrazione Per le integrazioni Stripe Checkout esistenti che specificano `payment_method_types`, è necessario rimuovere questo parametro per migrare le preferenze dei metodi di pagamento alla Dashboard. Dopo aver rimosso il parametro dalla tua integrazione, alcuni metodi di pagamento si attivano automaticamente, comprese le carte e i wallet. Il parametro `currency` limita i metodi di pagamento che il cliente vede nella sessione di completamento della transazione. > Se esegui l’upgrade della tua integrazione, inizialmente verranno disattivate tutte le modalità di pagamento non predefinite, come i reindirizzamenti bancari. Se hai aggiunto delle modalità di pagamento alla tua integrazione di Checkout, devi accedere alla pagina delle impostazioni delle modalità di pagamento nella Dashboard per riattivarle. #### Ruby ```ruby Stripe::Checkout::Session.create({ line_items: [ { price_data: { currency: 'eur', product_data: {name: 'T-shirt'}, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', success_url: 'https://example.com/success', }) ``` ## Visualizzare le modalità di pagamento disponibili nella Dashboard Visualizza le [impostazioni delle modalità di pagamento](https://dashboard.stripe.com/settings/payment_methods) per vedere quali modalità accetti al momento. Questo elenco comprende le modalità attivate per impostazione predefinita, come le carte. Queste modalità di pagamento hanno un costo pari o inferiore a quello delle carte e il pagamento è immediato. ### Metodi di pagamento Per impostazione predefinita, Stripe abilita le carte e altri metodi di pagamento più diffusi. Puoi attivare o disattivare i singoli metodi di pagamento nella [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). In Checkout, Stripe verifica la valuta e le eventuali limitazioni, poi presenta in modo dinamico al cliente i metodi di pagamento supportati. Per vedere come i clienti visualizzano i tuoi metodi di pagamento, inserisci un ID transazione o imposta l’importo e la valuta dell’ordine nella Dashboard. Puoi abilitare Apple Pay e Google Pay nelle [impostazioni dei metodi di pagamento](https://dashboard.stripe.com/settings/payment_methods). Per impostazione predefinita, Apple Pay è abilitato e Google Pay è disabilitato. Tuttavia, in alcuni casi Stripe li filtra anche quando sono abilitati. Filtriamo Google Pay se [abiliti l’imposta automatica](https://docs.stripe.com/tax/checkout.md) senza raccogliere un indirizzo di spedizione. Per abilitare Apple Pay o Google Pay, non devi apportare modifiche all’integrazione delle pagine in hosting su Stripe Checkout. Stripe gestisce questi pagamenti come gli altri pagamenti con carta. ## Aggiungere modalità di pagamento all'integrazione o rimuoverle Nella pagina della Dashboard dedicata alle impostazioni delle modalità di pagamento, puoi visualizzare le modalità disponibili e attivarne di nuove per la tua integrazione. Puoi abilitare alcune modalità di pagamento semplicemente selezionando **Attiva**. Tuttavia, per attivare alcune modalità sono necessari del passaggi aggiuntivi. In questi casi, vedrai un tasto con la dicitura **Configura** o **Rivedi i termini**. Per scoprire quali sono le modalità di pagamento più adatte alla tua azienda, consulta la nostra [guida alle modalità di pagamento](https://stripe.com/payments/payment-methods-guide). ## Gestire le modalità di pagamento con notifica differita (consigliato) A seconda del tipo di metodo di pagamento che hai integrato, la conferma di pagamento potrebbe arrivare dopo 2-14 giorni. Se configuri i *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) in modo da [evadere automaticamente](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) gli ordini con la tua integrazione di Checkout, nel momento in cui aggiungi i tuoi primi metodi di pagamento con notifica differita, potrebbe essere necessario aggiornare il codice. > Questo passaggio è necessario solo se prevedi di utilizzare uno dei seguenti metodi di pagamento: % if $gates.fpx_enable_b2b_docs %} [FPX](https://docs.stripe.com/payments/fpx/accept-a-payment.md), [Addebito diretto Bacs](https://docs.stripe.com/payments/bacs-debit/accept-a-payment.md), [Bonifici bancari](https://docs.stripe.com/payments/bank-transfers/accept-a-payment.md), [Boleto](https://docs.stripe.com/payments/boleto/accept-a-payment.md), [Addebiti pre-autorizzati canadesi](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md), [Konbini](https://docs.stripe.com/payments/konbini/accept-a-payment.md), [OXXO](https://docs.stripe.com/payments/oxxo/accept-a-payment.md), [Pay by Bank](https://docs.stripe.com/payments/pay-by-bank/accept-a-payment.md), [Addebito diretto SEPA](https://docs.stripe.com/payments/sepa-debit/accept-a-payment.md), o [ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment.md). Quando ricevi pagamenti effettuati con una modalità di pagamento con notifica differita, i fondi non sono disponibili immediatamente. L’elaborazione di questi fondi potrebbe richiedere più giorni, quindi dovresti ritardare l’*evasione* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) dell’ordine fino a quando i fondi non sono disponibili sul tuo account. Quando il pagamento va a buon fine, lo stato del *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) corrispondente passa da `processing` a `succeeded`. Dovrai gestire i seguenti eventi di Checkout: | Nome evento | Descrizione | Passaggi successivi | | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Il cliente ha autorizzato il pagamento con addebito inviando il modulo di Checkout. | Attendi l’esito positivo o negativo del pagamento. | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | Il pagamento del cliente è andato a buon fine. | Evadi l’ordine delle merci o dei servizi acquistati. | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | Il pagamento è stato rifiutato o non è andato a buon fine per qualche altro motivo. | Contatta il cliente via email e chiedigli di effettuare un nuovo ordine. | Tutti questi eventi includono l’oggetto [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md). Aggiorna il gestore eventi per evadere l’ordine: #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' # You can find your endpoint's secret in the output of the `stripe listen` # command you ran earlier endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end case event['type']when 'checkout.session.completed' checkout_session = event['data']['object'] # Save an order in your database, marked as 'awaiting payment' create_order(checkout_session) # Check if the order is already paid (for example, from a card payment) # # A delayed notification payment will have an `unpaid` status, as # you're still waiting for funds to be transferred from the customer's # account. if checkout_session.payment_status == 'paid' fulfill_order(checkout_session) end when 'checkout.session.async_payment_succeeded' checkout_session = event['data']['object'] # Fulfill the purchase... fulfill_order(checkout_session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(checkout_session) end status 200 end def fulfill_order(checkout_session) # TODO: fill in with your own logic puts "Fulfilling order for #{checkout_session.inspect}" enddef create_order(checkout_session) # TODO: fill in with your own logic puts "Creating order for #{checkout_session.inspect}" end def email_customer_about_failed_payment(checkout_session) # TODO: fill in with your own logic puts "Emailing customer about payment failure for: #{checkout_session.inspect}" end ``` ### Test Verifica che `stripe listen` sia ancora in esecuzione. Accedi a Checkout come utente di test, come hai fatto nei passaggi precedenti. Il gestore eventi dovrebbe ricevere un evento `checkout.session.completed` e dovresti averlo gestito correttamente. Una volta completati questi passaggi, puoi passare in modalità live nell’ambiente di produzione non appena decidi di farlo. ## Eseguire il test dell'integrazione #### Carte | Numero di carta | Scenario | Come eseguire il test | | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | 4242424242424242 | Il pagamento con carta ha esito positivo e non richiede l’autenticazione. | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | | 4000002500003155 | Il pagamento con carta richiede l’*autenticazione* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase). | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | | 4000000000009995 | La carta viene rifiutata con un codice di rifiuto del tipo `insufficient_funds`. | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | | 6205500000000000004 | La carta UnionPay ha una lunghezza variabile di 13-19 cifre. | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | #### Wallet | Modalità di pagamento | Scenario | Come eseguire il test | | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Alipay | Il tuo cliente paga correttamente usando un metodo di pagamento con reindirizzamento e [notifica immediata](https://docs.stripe.com/payments/payment-methods.md#payment-notification). | Scegli una qualsiasi modalità di pagamento con reindirizzamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Completa il pagamento di test** nella pagina di reindirizzamento. | #### Reindirizzamenti bancari | Modalità di pagamento | Scenario | Come eseguire il test | | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Addebito diretto BECS | Il tuo cliente paga correttamente con addebito diretto BECS. | Compila il modulo usando il numero di conto `900123456` e BSB `000000`. Il PaymentIntent confermato passerà inizialmente allo stato `processing` e, 3 minuti dopo, allo stato `succeeded`. | | Addebito diretto BECS | Il pagamento del tuo cliente non va a buon fine e restituisce un codice di errore `account_closed`. | Compila il modulo usando il numero di conto `111111113` e il BSB `000000`. | | Bancontact, EPS, iDEAL e Przelewy24 | Il cliente non riesce a eseguire l’autenticazione nella pagina di reindirizzamento per una modalità di pagamento con reindirizzamento e notifica immediata. | Scegli una qualsiasi modalità di pagamento con reindirizzamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Interrompi il pagamento di test** nella pagina di reindirizzamento. | | Pay by Bank | Il tuo cliente paga correttamente con un metodo di pagamento con reindirizzamento e [notifica differita](https://docs.stripe.com/payments/payment-methods.md#payment-notification). | Scegli la modalità di pagamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Completa il pagamento di test** nella pagina di reindirizzamento. | | Pay by Bank | Il cliente non riesce a eseguire l’autenticazione nella pagina di reindirizzamento per una modalità di pagamento con reindirizzamento e notifica differita. | Scegli la modalità di pagamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Interrompi il pagamento di test** nella pagina di reindirizzamento. | | BLIK | I pagamenti BLIK non vanno a buon fine per vari motivi. In alcuni casi si tratta di errori immediati (ad esempio il codice è scaduto o non è valido), di errori ritardati (la banca rifiuta il pagamento) o di timeout (il cliente non risponde in tempo). | Utilizza i modelli di email per [simulare i diversi errori.](https://docs.stripe.com/payments/blik/accept-a-payment.md#simulate-failures) | #### Addebiti bancari | Modalità di pagamento | Scenario | Come eseguire il test | | --------------------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Addebito diretto SEPA | Il tuo cliente paga correttamente con addebito diretto SEPA. | Compila il modulo usando il numero di conto `AT321904300235473204`. Il PaymentIntent confermato passerà inizialmente allo stato in elaborazione e, tre minuti dopo, allo stato di pagamento riuscito. | | Addebito diretto SEPA | Lo stato del Payment Intent del tuo cliente passa da `processing` a `requires_payment_method`. | Compila il modulo usando il numero di conto `AT861904300235473202`. | #### Voucher | Modalità di pagamento | Scenario | Come eseguire il test | | --------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | Boleto, OXXO | Il tuo cliente paga con voucher Boleto oppure OXXO. | Seleziona Boleto oppure OXXO come modalità di pagamento e invia il pagamento. Chiudi la finestra di dialogo visualizzata. | Per ulteriori informazioni su come testare la tua integrazione, consulta la sezione [Test](https://docs.stripe.com/testing.md). # Pagina incorporata > This is a Pagina incorporata for when payment-ui is embedded-form. View the full page at https://docs.stripe.com/payments/dashboard-payment-methods?payment-ui=embedded-form. Se modifichi l’integrazione in modo da richiamare i metodi di pagamento preferiti dalla Dashboard, al completamento della transazione Stripe mostrerà ai clienti tutti i metodi di pagamento compatibili in base alla valuta scelta o a eventuali limitazioni dei metodi di pagamento, come l’importo massimo della transazione. In più, Stripe presenta i metodi di pagamento più pertinenti per ciascun cliente in base alla posizione e alla valuta utilizzata. La pagina di pagamento dà la priorità alla visualizzazione dei metodi di pagamento noti per aumentare la conversione per la posizione del cliente, mentre i metodi di pagamento con priorità più bassa sono nascosti sotto un menu extra. In fase di completamento della transazione, i clienti vedranno più metodi di pagamento adatti a loro a seconda di dove si trovano e della valuta che utilizzano, ma potranno comunque scegliere un metodo di pagamento diverso dal menu extra. ## Aggiornare l'integrazione Per le integrazioni Stripe Checkout esistenti che specificano `payment_method_types`, è necessario rimuovere questo parametro per migrare le preferenze dei metodi di pagamento alla Dashboard. Dopo aver rimosso il parametro dalla tua integrazione, alcuni metodi di pagamento si attivano automaticamente, comprese le carte e i wallet. Il parametro `currency` limita i metodi di pagamento che il cliente vede nella sessione di completamento della transazione. > Se esegui l’upgrade della tua integrazione, inizialmente verranno disattivate tutte le modalità di pagamento non predefinite, come i reindirizzamenti bancari. Se hai aggiunto delle modalità di pagamento alla tua integrazione di Checkout, devi accedere alla pagina delle impostazioni delle modalità di pagamento nella Dashboard per riattivarle. #### Ruby ```ruby Stripe::Checkout::Session.create({ line_items: [ { price_data: { currency: 'eur', product_data: {name: 'T-shirt'}, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', return_url: 'https://example.com/return', ui_mode: 'embedded_page', }) ``` ## Visualizzare le modalità di pagamento disponibili nella Dashboard Visualizza le [impostazioni delle modalità di pagamento](https://dashboard.stripe.com/settings/payment_methods) per vedere quali modalità accetti al momento. Questo elenco comprende le modalità attivate per impostazione predefinita, come le carte. Queste modalità di pagamento hanno un costo pari o inferiore a quello delle carte e il pagamento è immediato. ### Metodi di pagamento Per impostazione predefinita, Stripe abilita le carte e altri metodi di pagamento più diffusi. Puoi attivare o disattivare i singoli metodi di pagamento nella [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods). In Checkout, Stripe verifica la valuta e le eventuali limitazioni, poi presenta in modo dinamico al cliente i metodi di pagamento supportati. Per vedere come i clienti visualizzano i tuoi metodi di pagamento, inserisci un ID transazione o imposta l’importo e la valuta dell’ordine nella Dashboard. Puoi abilitare Apple Pay e Google Pay nelle [impostazioni dei metodi di pagamento](https://dashboard.stripe.com/settings/payment_methods). Per impostazione predefinita, Apple Pay è abilitato e Google Pay è disabilitato. Tuttavia, in alcuni casi Stripe li filtra anche quando sono abilitati. Filtriamo Google Pay se [abiliti l’imposta automatica](https://docs.stripe.com/tax/checkout.md) senza raccogliere un indirizzo di spedizione. Per abilitare Apple Pay o Google Pay, non devi apportare modifiche all’integrazione delle pagine in hosting su Stripe Checkout. Stripe gestisce questi pagamenti come gli altri pagamenti con carta. ## Aggiungere modalità di pagamento all'integrazione o rimuoverle Nella pagina della Dashboard dedicata alle impostazioni delle modalità di pagamento, puoi visualizzare le modalità disponibili e attivarne di nuove per la tua integrazione. Puoi abilitare alcune modalità di pagamento semplicemente selezionando **Attiva**. Tuttavia, per attivare alcune modalità sono necessari del passaggi aggiuntivi. In questi casi, vedrai un tasto con la dicitura **Configura** o **Rivedi i termini**. Per scoprire quali sono le modalità di pagamento più adatte alla tua azienda, consulta la nostra [guida alle modalità di pagamento](https://stripe.com/payments/payment-methods-guide). ## Gestire le modalità di pagamento con notifica differita (consigliato) A seconda del tipo di metodo di pagamento che hai integrato, la conferma di pagamento potrebbe arrivare dopo 2-14 giorni. Se configuri i *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) in modo da [evadere automaticamente](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) gli ordini con la tua integrazione di Checkout, nel momento in cui aggiungi i tuoi primi metodi di pagamento con notifica differita, potrebbe essere necessario aggiornare il codice. > Questo passaggio è necessario solo se prevedi di utilizzare uno dei seguenti metodi di pagamento: % if $gates.fpx_enable_b2b_docs %} [FPX](https://docs.stripe.com/payments/fpx/accept-a-payment.md), [Addebito diretto Bacs](https://docs.stripe.com/payments/bacs-debit/accept-a-payment.md), [Bonifici bancari](https://docs.stripe.com/payments/bank-transfers/accept-a-payment.md), [Boleto](https://docs.stripe.com/payments/boleto/accept-a-payment.md), [Addebiti pre-autorizzati canadesi](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md), [Konbini](https://docs.stripe.com/payments/konbini/accept-a-payment.md), [OXXO](https://docs.stripe.com/payments/oxxo/accept-a-payment.md), [Pay by Bank](https://docs.stripe.com/payments/pay-by-bank/accept-a-payment.md), [Addebito diretto SEPA](https://docs.stripe.com/payments/sepa-debit/accept-a-payment.md), o [ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment.md). Quando ricevi pagamenti effettuati con una modalità di pagamento con notifica differita, i fondi non sono disponibili immediatamente. L’elaborazione di questi fondi potrebbe richiedere più giorni, quindi dovresti ritardare l’*evasione* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) dell’ordine fino a quando i fondi non sono disponibili sul tuo account. Quando il pagamento va a buon fine, lo stato del *PaymentIntent* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) corrispondente passa da `processing` a `succeeded`. Dovrai gestire i seguenti eventi di Checkout: | Nome evento | Descrizione | Passaggi successivi | | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) | Il cliente ha autorizzato il pagamento con addebito inviando il modulo di Checkout. | Attendi l’esito positivo o negativo del pagamento. | | [checkout.session.async_payment_succeeded](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_succeeded) | Il pagamento del cliente è andato a buon fine. | Evadi l’ordine delle merci o dei servizi acquistati. | | [checkout.session.async_payment_failed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.async_payment_failed) | Il pagamento è stato rifiutato o non è andato a buon fine per qualche altro motivo. | Contatta il cliente via email e chiedigli di effettuare un nuovo ordine. | Tutti questi eventi includono l’oggetto [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md). Aggiorna il gestore eventi per evadere l’ordine: #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' # You can find your endpoint's secret in the output of the `stripe listen` # command you ran earlier endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end case event['type']when 'checkout.session.completed' checkout_session = event['data']['object'] # Save an order in your database, marked as 'awaiting payment' create_order(checkout_session) # Check if the order is already paid (for example, from a card payment) # # A delayed notification payment will have an `unpaid` status, as # you're still waiting for funds to be transferred from the customer's # account. if checkout_session.payment_status == 'paid' fulfill_order(checkout_session) end when 'checkout.session.async_payment_succeeded' checkout_session = event['data']['object'] # Fulfill the purchase... fulfill_order(checkout_session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(checkout_session) end status 200 end def fulfill_order(checkout_session) # TODO: fill in with your own logic puts "Fulfilling order for #{checkout_session.inspect}" enddef create_order(checkout_session) # TODO: fill in with your own logic puts "Creating order for #{checkout_session.inspect}" end def email_customer_about_failed_payment(checkout_session) # TODO: fill in with your own logic puts "Emailing customer about payment failure for: #{checkout_session.inspect}" end ``` ### Test Verifica che `stripe listen` sia ancora in esecuzione. Accedi a Checkout come utente di test, come hai fatto nei passaggi precedenti. Il gestore eventi dovrebbe ricevere un evento `checkout.session.completed` e dovresti averlo gestito correttamente. Una volta completati questi passaggi, puoi passare in modalità live nell’ambiente di produzione non appena decidi di farlo. ## Eseguire il test dell'integrazione #### Carte | Numero di carta | Scenario | Come eseguire il test | | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | 4242424242424242 | Il pagamento con carta ha esito positivo e non richiede l’autenticazione. | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | | 4000002500003155 | Il pagamento con carta richiede l’*autenticazione* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase). | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | | 4000000000009995 | La carta viene rifiutata con un codice di rifiuto del tipo `insufficient_funds`. | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | | 6205500000000000004 | La carta UnionPay ha una lunghezza variabile di 13-19 cifre. | Compila il modulo della carta di credito utilizzando il numero di carta di credito con scadenza, CVC e codice postale. | #### Wallet | Modalità di pagamento | Scenario | Come eseguire il test | | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Alipay | Il tuo cliente paga correttamente usando un metodo di pagamento con reindirizzamento e [notifica immediata](https://docs.stripe.com/payments/payment-methods.md#payment-notification). | Scegli una qualsiasi modalità di pagamento con reindirizzamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Completa il pagamento di test** nella pagina di reindirizzamento. | #### Reindirizzamenti bancari | Modalità di pagamento | Scenario | Come eseguire il test | | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Addebito diretto BECS | Il tuo cliente paga correttamente con addebito diretto BECS. | Compila il modulo usando il numero di conto `900123456` e BSB `000000`. Il PaymentIntent confermato passerà inizialmente allo stato `processing` e, 3 minuti dopo, allo stato `succeeded`. | | Addebito diretto BECS | Il pagamento del tuo cliente non va a buon fine e restituisce un codice di errore `account_closed`. | Compila il modulo usando il numero di conto `111111113` e il BSB `000000`. | | Bancontact, EPS, iDEAL e Przelewy24 | Il cliente non riesce a eseguire l’autenticazione nella pagina di reindirizzamento per una modalità di pagamento con reindirizzamento e notifica immediata. | Scegli una qualsiasi modalità di pagamento con reindirizzamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Interrompi il pagamento di test** nella pagina di reindirizzamento. | | Pay by Bank | Il tuo cliente paga correttamente con un metodo di pagamento con reindirizzamento e [notifica differita](https://docs.stripe.com/payments/payment-methods.md#payment-notification). | Scegli la modalità di pagamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Completa il pagamento di test** nella pagina di reindirizzamento. | | Pay by Bank | Il cliente non riesce a eseguire l’autenticazione nella pagina di reindirizzamento per una modalità di pagamento con reindirizzamento e notifica differita. | Scegli la modalità di pagamento, fornisci i dati richiesti e conferma il pagamento. Quindi fai clic su **Interrompi il pagamento di test** nella pagina di reindirizzamento. | | BLIK | I pagamenti BLIK non vanno a buon fine per vari motivi. In alcuni casi si tratta di errori immediati (ad esempio il codice è scaduto o non è valido), di errori ritardati (la banca rifiuta il pagamento) o di timeout (il cliente non risponde in tempo). | Utilizza i modelli di email per [simulare i diversi errori.](https://docs.stripe.com/payments/blik/accept-a-payment.md#simulate-failures) | #### Addebiti bancari | Modalità di pagamento | Scenario | Come eseguire il test | | --------------------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Addebito diretto SEPA | Il tuo cliente paga correttamente con addebito diretto SEPA. | Compila il modulo usando il numero di conto `AT321904300235473204`. Il PaymentIntent confermato passerà inizialmente allo stato in elaborazione e, tre minuti dopo, allo stato di pagamento riuscito. | | Addebito diretto SEPA | Lo stato del Payment Intent del tuo cliente passa da `processing` a `requires_payment_method`. | Compila il modulo usando il numero di conto `AT861904300235473202`. | #### Voucher | Modalità di pagamento | Scenario | Come eseguire il test | | --------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | Boleto, OXXO | Il tuo cliente paga con voucher Boleto oppure OXXO. | Seleziona Boleto oppure OXXO come modalità di pagamento e invia il pagamento. Chiudi la finestra di dialogo visualizzata. | Per ulteriori informazioni su come testare la tua integrazione, consulta la sezione [Test](https://docs.stripe.com/testing.md).