# Accettare un pagamento Klarna Scopri come accettare un pagamento con Klarna, una modalità di pagamento a rate utilizzata in tutto il mondo. Con [Klarna](https://docs.stripe.com/payments/klarna.md), i clienti vengono reindirizzati al loro account Klarna durante il completamento della transazione. Se non disponi già di un’integrazione con Stripe, ti consigliamo di utilizzare Stripe Checkout per [creare una pagina di completamento della transazione](https://docs.stripe.com/checkout/quickstart.md) ospitata su Stripe e [configurare i metodi di pagamento nella dashboard](https://docs.stripe.com/payments/dashboard-payment-methods.md). È inoltre possibile utilizzare [Elements con l’API Checkout Sessions](https://docs.stripe.com/payments/quickstart-checkout-sessions.md) per creare una pagina di checkout personalizzata sul proprio sito web o realizzare un’integrazione mobile per autenticare il pagamento in una webview. > Prima di avviare l’integrazione, assicurati che il tuo account sia idoneo per Klarna accedendo alle [impostazioni dei metodi di pagamento](https://dashboard.stripe.com/settings/payment_methods). # Checkout > This is a Checkout for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/klarna/accept-a-payment?payment-ui=checkout. ## Elencare manualmente i metodi di pagamento Consigliamo di utilizzare i [metodi di pagamento dinamici](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md), in cui Stripe gestisce la logica per mostrare dinamicamente i metodi di pagamento idonei più confacenti a ciascun cliente, per massimizzare la conversione. Se scegli di [elencare manualmente i metodi di pagamento](https://docs.stripe.com/payments/payment-methods/integration-options.md#listing-payment-methods-manually), specifica `klarna` nel parametro [payment_method_types](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_types) quando crei una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions.md) per includere Klarna nella pagina di completamento della transazione. Se hai `line_items` in valute diverse, devi creare sessioni separate di completamento della transazione. #### Stripe-pagina in hosting ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=eur" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=1099" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=klarna" \ --data-urlencode "success_url=https://example.com/success" ``` #### Pagina completamente incorporata ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=eur" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=1099" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=klarna" \ --data-urlencode "return_url=https://example.com/return" \ -d ui_mode=embedded_page ``` ## Esegui il test dell’integrazione Quando esegui i test del completamento della transazione, seleziona Klarna come modalità di pagamento e fai clic sul pulsante **Paga**. Negli ambienti di test puoi simulare diversi risultati all’interno del reindirizzamento di Klarna. > Klarna utilizza i cookie per il tracciamento delle sessioni. Per testare diverse posizioni dei clienti, esci dalla sandbox Klarna dalla sessione precedente e utilizza i trigger pertinenti. Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito. #### Australia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 03-05-1994 | | Nome | Test | John | | Cognome | Person-au | snow | | Via | Wharf St | Silverwater Rd | | Numero civico | 4 | 1-5 | | Codice postale | 4877 | 2.128 | | Città | Port Douglas | Silverwater | | Area geografica | QLD | NSW | | Telefono | +61473752244 | +61473763254 | | Email | customer@email.au | customer+denied@email.au | #### Austria | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-at | Person-at | | Email | customer@email.at | customer+denied@email.at | | Via | Mariahilfer Straße | Mariahilfer Straße | | Numero civico | 47 | 47 | | Città | Vienna | Vienna | | Codice postale | 1060 | 1060 | | Telefono | +4306762600456 | +4306762600745 | #### Belgio | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-be | Person-be | | Email | customer@email.be | customer+denied@email.be | | Via | Grote Markt | Grote Markt | | Numero civico | 1 | 1 | | Città | Brussel | Brussel | | Codice postale | 1000 | 1000 | | Telefono | +32485121291 | +32485212123 | #### Canada | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ca | Person-ca | | Via | 2693 Byron Rd | 2693 Byron Rd | | Codice postale | V7H 1L9 | V7H 1L9 | | Città | North Vancouver | North Vancouver | | Area geografica | BC | BC | | Telefono | +15197438620 | +15197308624 | | Email | customer@email.ca | customer+denied@email.ca | #### Cechia | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 01-01-1970 | 27-06-1992 | | Nome | Test | Test | | Cognome | Person-cz | Person-cz | | Email | customer@email.cz | customer+denied@email.cz | | Via | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Codice postale | 155 00 | 155 00 | | Città | Praha | PRAHA 13 | | Telefono | +420771613715 | +420771623691 | #### Danimarca | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-dk | Person-dk | | Email | customer@email.dk | customer+denied@email.dk | | Via | Dantes Plads | Nygårdsvej | | Numero civico | 7 | 65 | | Città | København Ø | København Ø | | Codice postale | 1556 | 2100 | | Telefono | +4542555628 | +4552555348 | #### Finlandia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1999 | 01-01-1999 | | Nome | Test | Person FI | | Cognome | Person-fi | Test | | Email | customer@email.fi | customer+denied@email.fi | | Via | Mannerheimintie | Mannerheimintie | | Numero civico | 34 | 34 | | Città | Helsinki | Helsinki | | Codice postale | 00100 | 00100 | | Telefono | +358401234567 | +358401234568 | #### Francia | | Approvato | Rifiutato | | ---------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1990 | 10-07-1990 | | Luogo di nascita | Parigi | Parigi | | Nome | Test | Test | | Cognome | Person-fr | Person-fr | | Email | customer@email.fr | customer+denied@email.fr | | Via | rue La Fayette | rue La Fayette | | Numero civico | 33 | 33 | | Città | Parigi | Parigi | | Codice postale | 75009 | 75009 | | Telefono | +33689854321 | +33687984322 | #### Germania | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Mock | Test | | Cognome | Mock | Person-de | | Email | customer@email.de | customer+denied@email.de | | Via | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numero civico | 2 | 2 | | Città | Berlin | Berlin | | Codice postale | 10178 | 10178 | | Telefono | +49017614284340 | +49017610927312 | #### Grecia | | Approvato | Rifiutato | | ---------------------- | ----------------- | ------------------------ | | Identificativo fiscale | 090000045 | 090000045 | | Data di nascita | 01-01-1960 | 11-11-1970 | | Nome | Test | Test | | Cognome | Person-gr | Test-gr | | Email | customer@email.gr | customer+denied@email.gr | | Via | Kephisias | Baralo | | Numero civico | 37 | 56 | | Codice postale | 151 23 | 123 67 | | Città | Athina | Athina | | Telefono | +306945553624 | +306945553625 | #### Irlanda | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ie | Person-ie | | Email | customer@email.ie | customer+denied@email.ie | | Via | King Street South | King Street South | | Numero civico | 30 | 30 | | Città | Dublino | Dublino | | Codice EIR | D02 C838 | D02 C838 | | Telefono | +353855351400 | +353855351401 | #### Italia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 01-01-1980 | | Nome | Test | Test | | Cognome | Person-it | Person-it | | Email | customer@email.it | customer+denied@email.it | | Codice fiscale | RSSBNC80A41H501B | RSSBNC80A41H501B | | Via | Via Enrico Fermi | Via Enrico Fermi | | Numero civico | 150 | 150 | | Città | Roma | Roma | | Codice postale | 00146 | 00146 | | Telefono | +393339741231 | +393312232389 | #### Paesi Bassi | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Persona-nl | Persona-nl | | Email | customer@email.nl | customer+denied@email.nl | | Via | Osdorpplein | Osdorpplein | | Numero civico | 137 | 137 | | Città | Amsterdam | Amsterdam | | Codice postale | 1068 SR | 1068 SR | | Telefono | +31689124321 | +31632167678 | #### Nuova Zelanda | | Approvato | Rifiutato | | --------------- | ------------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-nz | Person-nz | | Via | Mount Wellington Highway | Mount Wellington Highway | | Numero civico | 286 | 286 | | Codice postale | 6.011 | 6.011 | | Città | Auckland | Wellington | | Telefono | +6427555290 | +642993007712 | | Indirizzo email | customer@email.nz | customer+denied@email.nz | #### Norvegia | | Approvato | Rifiutato | | ---------------- | ------------------- | ------------------------ | | Data di nascita | 01-08-1970 | 01-08-1970 | | Nome | Jane | Test | | Cognome | Test | Person-no | | Email | customer@email.no | customer+denied@email.no | | Numero personale | NO1087000571 | NO1087000148 | | Via | Edvard Munchs Plass | Sæffleberggate | | Numero civico | 1 | 56 | | Città | Oslo | Oslo | | Codice postale | 0194 | 0563 | | Telefono | +4740123456 | +4740123457 | #### Polonia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 05-05-1967 | 05-05-1967 | | Nome | Test | Test | | Cognome | Person-pl | Person-pl | | Via | Ul. Górczewska | Ul. Górczewska | | Numero civico | 124 | 124 | | Codice postale | 01-460 | 01-460 | | Città | Warszawa | Warszawa | | Telefono | +48795222223 | +48795223325 | | Email | customer@email.pl | customer+denied@email.pl | #### Portogallo | | Approvato | Rifiutato | | --------------- | ------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-pt | Person-pt | | Via | Avenida Dom João II | Avenida Dom João II | | Numero civico | 40 | 40 | | Codice postale | 1990-094 | 1990-094 | | Città | Lisboa | Lisboa | | Telefono | +351935556731 | +351915593837 | | Email | customer@email.pt | customer+denied@email.pt | #### Romania | | Approvata | Rifiutato | | ----------------------------------------- | ----------------- | ------------------------ | | Data di nascita | 25-12-1970 | 25-12-1970 | | Nome | di prova | di prova | | Cognome | Person-ro | Person-ro | | Email | customer@email.ro | customer+denied@email.ro | | Via | Drumul Taberei | Drumul Taberei | | Numero civico | 35 | 35 | | Città | București | București | | Settore | Sectorul 6 | Sectorul 6 | | Codice postale | 061357 | 061357 | | Telefono | +40741209876 | +40707127444 | | Numero di identificazione personale (CNP) | 1701225193558 | | #### Spagna | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-es | Person-es | | Email | customer@email.es | customer+denied@email.es | | Via | C. de Atocha | C. de Atocha | | Numero civico | 27 | 27 | | Città | Madrid | Madrid | | Codice postale | 28012 | 28012 | | Telefono | +34672563009 | +34682425101 | #### Svezia | | Approvato | Rifiutato | | --------------- | ----------------------- | ------------------------ | | Data di nascita | 21-03-1941 | 28-10-1941 | | Nome | Alice | Test | | Cognome | Test | Person-se | | Email | customer@email.se | customer+denied@email.se | | Via | Södra Blasieholmshamnen | Karlaplan | | Numero civico | 2 | 3 | | Città | Stockholm | Stockholm | | Codice postale | 11 148 | 11 460 | | Telefono | +46701740615 | +46701740620 | #### Svizzera | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1990 | 01-01-2000 | | Nome | Accettato | Cliente | | Cognome | Person-ch | Person-ch | | Via | Augustinergasse | Bahnhofstrasse | | Numero civico | 2 | 77 | | Codice postale | 4.051 | 8001 | | Città | Basilea | Zürich | | Telefono | +41758680000 | +41758680001 | | Indirizzo email | customer@email.ch | customer+denied@email.ch | #### Regno Unito | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-uk | Person-uk | | Email | customer@email.uk | customer+denied@email.uk | | Via | New Burlington Street | New Burlington Street | | Numero civico | 10 | 10 | | Appartamento | Apt 214 | Apt 214 | | Codice postale | W1S 3BE | W1S 3BE | | Città | Londra | Londra | | Telefono | +447755564318 | +447355505530 | #### Stati Uniti | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 07-10-1970 | 07-10-1970 | | Nome | Test | Test | | Cognome | Person-us | Person-us | | Email | customer@email.us | customer+denied@email.us | | Via | Amsterdam Ave | Amsterdam Ave | | Numero civico | 509 | 509 | | Città | New York | New York | | Stato | New York | New York | | Codice postale | 10024-3941 | 10024-3941 | | Telefono | +13106683312 | +13106354386 | Per i test in produzione, puoi utilizzare un importo di `3500`nella tua valuta locale per testare tutte le opzioni di pagamento di Klarna oltre ai finanziamenti. Ad esempio, se vuoi testare il pagamento in tre rate in Italia, puoi utilizzare una transazione di 35,00 EUR. ### Autenticazione a due fattori Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza `999999` per la mancata autenticazione. ### Modalità di rimborso Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso: | Tipo | Valore | | ----------------- | ----------------------------------------------------------------------------------------- | | Addebito diretto | DE11520513735120710131 | | Bonifico bancario | Banca demo | | Carta di credito | - Numero: 4111 1111 1111 1111 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | | Carta di debito | - Numero: 4012 8888 8888 1881 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | # Elements > This is a Elements for when payment-ui is elements. View the full page at https://docs.stripe.com/payments/klarna/accept-a-payment?payment-ui=elements. ## Elencare manualmente i metodi di pagamento Consigliamo di utilizzare i [metodi di pagamento dinamici](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md), in cui Stripe gestisce la logica per mostrare dinamicamente i metodi di pagamento idonei più confacenti a ciascun cliente, per massimizzare la conversione. Se scegli di [elencare manualmente i metodi di pagamento](https://docs.stripe.com/payments/payment-methods/integration-options.md#listing-payment-methods-manually), specifica `klarna` nel parametro [payment_method_types](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_types) quando crei una [sessione di Checkout](https://docs.stripe.com/api/checkout/sessions.md) per includere Klarna nella pagina di completamento della transazione. Se hai `line_items` in valute diverse, devi creare sessioni separate di completamento della transazione. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=eur" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=1099" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=klarna" \ --data-urlencode "return_url=https://example.com/return" \ -d ui_mode=elements ``` ## Esegui il test dell’integrazione Quando esegui i test del completamento della transazione, seleziona Klarna come modalità di pagamento e fai clic sul pulsante **Paga**. Negli ambienti di test puoi simulare diversi risultati all’interno del reindirizzamento di Klarna. > Klarna utilizza i cookie per il tracciamento delle sessioni. Per testare diverse posizioni dei clienti, esci dalla sandbox Klarna dalla sessione precedente e utilizza i trigger pertinenti. Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito. #### Australia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 03-05-1994 | | Nome | Test | John | | Cognome | Person-au | snow | | Via | Wharf St | Silverwater Rd | | Numero civico | 4 | 1-5 | | Codice postale | 4877 | 2.128 | | Città | Port Douglas | Silverwater | | Area geografica | QLD | NSW | | Telefono | +61473752244 | +61473763254 | | Email | customer@email.au | customer+denied@email.au | #### Austria | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-at | Person-at | | Email | customer@email.at | customer+denied@email.at | | Via | Mariahilfer Straße | Mariahilfer Straße | | Numero civico | 47 | 47 | | Città | Vienna | Vienna | | Codice postale | 1060 | 1060 | | Telefono | +4306762600456 | +4306762600745 | #### Belgio | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-be | Person-be | | Email | customer@email.be | customer+denied@email.be | | Via | Grote Markt | Grote Markt | | Numero civico | 1 | 1 | | Città | Brussel | Brussel | | Codice postale | 1000 | 1000 | | Telefono | +32485121291 | +32485212123 | #### Canada | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ca | Person-ca | | Via | 2693 Byron Rd | 2693 Byron Rd | | Codice postale | V7H 1L9 | V7H 1L9 | | Città | North Vancouver | North Vancouver | | Area geografica | BC | BC | | Telefono | +15197438620 | +15197308624 | | Email | customer@email.ca | customer+denied@email.ca | #### Cechia | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 01-01-1970 | 27-06-1992 | | Nome | Test | Test | | Cognome | Person-cz | Person-cz | | Email | customer@email.cz | customer+denied@email.cz | | Via | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Codice postale | 155 00 | 155 00 | | Città | Praha | PRAHA 13 | | Telefono | +420771613715 | +420771623691 | #### Danimarca | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-dk | Person-dk | | Email | customer@email.dk | customer+denied@email.dk | | Via | Dantes Plads | Nygårdsvej | | Numero civico | 7 | 65 | | Città | København Ø | København Ø | | Codice postale | 1556 | 2100 | | Telefono | +4542555628 | +4552555348 | #### Finlandia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1999 | 01-01-1999 | | Nome | Test | Person FI | | Cognome | Person-fi | Test | | Email | customer@email.fi | customer+denied@email.fi | | Via | Mannerheimintie | Mannerheimintie | | Numero civico | 34 | 34 | | Città | Helsinki | Helsinki | | Codice postale | 00100 | 00100 | | Telefono | +358401234567 | +358401234568 | #### Francia | | Approvato | Rifiutato | | ---------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1990 | 10-07-1990 | | Luogo di nascita | Parigi | Parigi | | Nome | Test | Test | | Cognome | Person-fr | Person-fr | | Email | customer@email.fr | customer+denied@email.fr | | Via | rue La Fayette | rue La Fayette | | Numero civico | 33 | 33 | | Città | Parigi | Parigi | | Codice postale | 75009 | 75009 | | Telefono | +33689854321 | +33687984322 | #### Germania | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Mock | Test | | Cognome | Mock | Person-de | | Email | customer@email.de | customer+denied@email.de | | Via | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numero civico | 2 | 2 | | Città | Berlin | Berlin | | Codice postale | 10178 | 10178 | | Telefono | +49017614284340 | +49017610927312 | #### Grecia | | Approvato | Rifiutato | | ---------------------- | ----------------- | ------------------------ | | Identificativo fiscale | 090000045 | 090000045 | | Data di nascita | 01-01-1960 | 11-11-1970 | | Nome | Test | Test | | Cognome | Person-gr | Test-gr | | Email | customer@email.gr | customer+denied@email.gr | | Via | Kephisias | Baralo | | Numero civico | 37 | 56 | | Codice postale | 151 23 | 123 67 | | Città | Athina | Athina | | Telefono | +306945553624 | +306945553625 | #### Irlanda | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ie | Person-ie | | Email | customer@email.ie | customer+denied@email.ie | | Via | King Street South | King Street South | | Numero civico | 30 | 30 | | Città | Dublino | Dublino | | Codice EIR | D02 C838 | D02 C838 | | Telefono | +353855351400 | +353855351401 | #### Italia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 01-01-1980 | | Nome | Test | Test | | Cognome | Person-it | Person-it | | Email | customer@email.it | customer+denied@email.it | | Codice fiscale | RSSBNC80A41H501B | RSSBNC80A41H501B | | Via | Via Enrico Fermi | Via Enrico Fermi | | Numero civico | 150 | 150 | | Città | Roma | Roma | | Codice postale | 00146 | 00146 | | Telefono | +393339741231 | +393312232389 | #### Paesi Bassi | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Persona-nl | Persona-nl | | Email | customer@email.nl | customer+denied@email.nl | | Via | Osdorpplein | Osdorpplein | | Numero civico | 137 | 137 | | Città | Amsterdam | Amsterdam | | Codice postale | 1068 SR | 1068 SR | | Telefono | +31689124321 | +31632167678 | #### Nuova Zelanda | | Approvato | Rifiutato | | --------------- | ------------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-nz | Person-nz | | Via | Mount Wellington Highway | Mount Wellington Highway | | Numero civico | 286 | 286 | | Codice postale | 6.011 | 6.011 | | Città | Auckland | Wellington | | Telefono | +6427555290 | +642993007712 | | Indirizzo email | customer@email.nz | customer+denied@email.nz | #### Norvegia | | Approvato | Rifiutato | | ---------------- | ------------------- | ------------------------ | | Data di nascita | 01-08-1970 | 01-08-1970 | | Nome | Jane | Test | | Cognome | Test | Person-no | | Email | customer@email.no | customer+denied@email.no | | Numero personale | NO1087000571 | NO1087000148 | | Via | Edvard Munchs Plass | Sæffleberggate | | Numero civico | 1 | 56 | | Città | Oslo | Oslo | | Codice postale | 0194 | 0563 | | Telefono | +4740123456 | +4740123457 | #### Polonia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 05-05-1967 | 05-05-1967 | | Nome | Test | Test | | Cognome | Person-pl | Person-pl | | Via | Ul. Górczewska | Ul. Górczewska | | Numero civico | 124 | 124 | | Codice postale | 01-460 | 01-460 | | Città | Warszawa | Warszawa | | Telefono | +48795222223 | +48795223325 | | Email | customer@email.pl | customer+denied@email.pl | #### Portogallo | | Approvato | Rifiutato | | --------------- | ------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-pt | Person-pt | | Via | Avenida Dom João II | Avenida Dom João II | | Numero civico | 40 | 40 | | Codice postale | 1990-094 | 1990-094 | | Città | Lisboa | Lisboa | | Telefono | +351935556731 | +351915593837 | | Email | customer@email.pt | customer+denied@email.pt | #### Romania | | Approvata | Rifiutato | | ----------------------------------------- | ----------------- | ------------------------ | | Data di nascita | 25-12-1970 | 25-12-1970 | | Nome | di prova | di prova | | Cognome | Person-ro | Person-ro | | Email | customer@email.ro | customer+denied@email.ro | | Via | Drumul Taberei | Drumul Taberei | | Numero civico | 35 | 35 | | Città | București | București | | Settore | Sectorul 6 | Sectorul 6 | | Codice postale | 061357 | 061357 | | Telefono | +40741209876 | +40707127444 | | Numero di identificazione personale (CNP) | 1701225193558 | | #### Spagna | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-es | Person-es | | Email | customer@email.es | customer+denied@email.es | | Via | C. de Atocha | C. de Atocha | | Numero civico | 27 | 27 | | Città | Madrid | Madrid | | Codice postale | 28012 | 28012 | | Telefono | +34672563009 | +34682425101 | #### Svezia | | Approvato | Rifiutato | | --------------- | ----------------------- | ------------------------ | | Data di nascita | 21-03-1941 | 28-10-1941 | | Nome | Alice | Test | | Cognome | Test | Person-se | | Email | customer@email.se | customer+denied@email.se | | Via | Södra Blasieholmshamnen | Karlaplan | | Numero civico | 2 | 3 | | Città | Stockholm | Stockholm | | Codice postale | 11 148 | 11 460 | | Telefono | +46701740615 | +46701740620 | #### Svizzera | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1990 | 01-01-2000 | | Nome | Accettato | Cliente | | Cognome | Person-ch | Person-ch | | Via | Augustinergasse | Bahnhofstrasse | | Numero civico | 2 | 77 | | Codice postale | 4.051 | 8001 | | Città | Basilea | Zürich | | Telefono | +41758680000 | +41758680001 | | Indirizzo email | customer@email.ch | customer+denied@email.ch | #### Regno Unito | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-uk | Person-uk | | Email | customer@email.uk | customer+denied@email.uk | | Via | New Burlington Street | New Burlington Street | | Numero civico | 10 | 10 | | Appartamento | Apt 214 | Apt 214 | | Codice postale | W1S 3BE | W1S 3BE | | Città | Londra | Londra | | Telefono | +447755564318 | +447355505530 | #### Stati Uniti | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 07-10-1970 | 07-10-1970 | | Nome | Test | Test | | Cognome | Person-us | Person-us | | Email | customer@email.us | customer+denied@email.us | | Via | Amsterdam Ave | Amsterdam Ave | | Numero civico | 509 | 509 | | Città | New York | New York | | Stato | New York | New York | | Codice postale | 10024-3941 | 10024-3941 | | Telefono | +13106683312 | +13106354386 | Per i test in produzione, puoi utilizzare un importo di `3500`nella tua valuta locale per testare tutte le opzioni di pagamento di Klarna oltre ai finanziamenti. Ad esempio, se vuoi testare il pagamento in tre rate in Italia, puoi utilizzare una transazione di 35,00 EUR. ### Autenticazione a due fattori Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza `999999` per la mancata autenticazione. ### Modalità di rimborso Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso: | Tipo | Valore | | ----------------- | ----------------------------------------------------------------------------------------- | | Addebito diretto | DE11520513735120710131 | | Bonifico bancario | Banca demo | | Carta di credito | - Numero: 4111 1111 1111 1111 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | | Carta di debito | - Numero: 4012 8888 8888 1881 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | # iOS > This is a iOS for when payment-ui is mobile and platform is ios. View the full page at https://docs.stripe.com/payments/klarna/accept-a-payment?payment-ui=mobile&platform=ios. L’accettazione di Klarna nella tua app consiste nella visualizzazione di una vista web con cui il cliente deve autenticare il proprio pagamento. Il cliente torna quindi alla tua app e tu puoi *verificare* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) immediatamente se il pagamento ha avuto esito positivo o negativo. ## Configura Stripe [Lato server] [Lato client] Innanzitutto, devi creare un account Stripe. [Registrati ora](https://dashboard.stripe.com/register). ### Lato server Per questa integrazione sono necessari endpoint sul server che comunicano con l’API Stripe. Utilizza le nostre librerie ufficiali per accedere all’API Stripe dal tuo server: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ### Lato client L’[SDK per iOS di Stripe](https://github.com/stripe/stripe-ios) è open source, [completamente documentato](https://stripe.dev/stripe-ios/index.html) e compatibile con le app che supportano iOS 13 o versioni successive. #### Swift Package Manager Per installare l’SDK, segui questi passaggi: 1. In Xcode, seleziona **File** > **Aggiungi dipendenze pacchetto…** e inserisci `https://github.com/stripe/stripe-ios-spm` come URL repository. 1. Seleziona il numero dell’ultima versione dalla nostra [pagina delle release](https://github.com/stripe/stripe-ios/releases). 1. Aggiungi il prodotto **StripePaymentsUI** al [target della tua app](https://developer.apple.com/documentation/swift_packages/adding_package_dependencies_to_your_app). #### CocoaPods 1. Se non l’hai ancora fatto, installa la versione più recente di [CocoaPods](https://guides.cocoapods.org/using/getting-started.html). 1. Se non hai un [Podfile](https://guides.cocoapods.org/syntax/podfile.html), esegui il seguente comando per crearne uno: ```bash pod init ``` 1. Aggiungi questa riga al tuo `Podfile`: ```podfile pod 'StripePaymentsUI' ``` 1. Esegui il seguente comando: ```bash pod install ``` 1. Ricordati di utilizzare d’ora in poi il file `.xcworkspace` per aprire il progetto in Xcode, anziché il file `.xcodeproj` file. 1. In futuro, per eseguire l’aggiornamento alla versione più recente dell’SDK, esegui questo comando: ```bash pod update StripePaymentsUI ``` #### Carthage 1. Se non l’hai ancora fatto, installa la versione più recente di [Carthage](https://github.com/Carthage/Carthage#installing-carthage). 1. Aggiungi questa riga al tuo `Cartfile`: ```cartfile github "stripe/stripe-ios" ``` 1. Segui le [istruzioni per l’installazione di Carthage](https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos). Assicurati di integrare tutti i framework necessari elencati [qui](https://github.com/stripe/stripe-ios/tree/master/StripePaymentsUI/README.md#manual-linking). 1. In futuro, per eseguire l’aggiornamento alla versione più recente del nostro SDK, esegui il seguente comando: ```bash carthage update stripe-ios --platform ios ``` #### Framework manuale 1. Vai alla [pagina delle versioni di GitHub](https://github.com/stripe/stripe-ios/releases/latest) e scarica e decomprimi **Stripe.xcframework.zip**. 1. Trascina **StripePaymentsUI.xcframework** nella sezione **Embedded Binaries** (File binari incorporati) delle impostazioni **General** (Generali) nel tuo progetto Xcode. Assicurati che sia selezionato **Copy items if needed** (Copia elementi se necessario). 1. Ripeti il passaggio 2 per tutti i framework necessari elencati [qui](https://github.com/stripe/stripe-ios/tree/master/StripePaymentsUI/README.md#manual-linking). 1. In futuro, per eseguire l’aggiornamento alla versione più recente del nostro SDK, ripeti i passaggi 1-3. > Per ulteriori informazioni sulla versione più recente e su quelle precedenti dell’SDK, consulta la pagina [Versioni](https://github.com/stripe/stripe-ios/releases) su GitHub. Per ricevere notifiche quando viene pubblicata una nuova versione, [guarda le versioni](https://help.github.com/en/articles/watching-and-unwatching-releases-for-a-repository#watching-releases-for-a-repository) del repository. Configura l’SDK con la tua [chiave pubblicabile](https://dashboard.stripe.com/test/apikeys) di Stripe all’avvio dell’app. In questo modo l’app può inviare le richieste all’API Stripe. #### Swift ```swift import UIKitimportStripePaymentsUI @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {StripeAPI.defaultPublishableKey = "<>" // do any other necessary launch configuration return true } } ``` > Usa le [chiavi di test](https://docs.stripe.com/keys.md#obtain-api-keys) durante i test e le chiavi della [modalità live](https://docs.stripe.com/keys.md#test-live-modes) quando pubblichi l’app. ## Creare un PaymentIntent [Lato server] [Lato client] Un [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) è un oggetto che rappresenta la tua intenzione di riscuotere un pagamento da un cliente e traccia il ciclo di vita del processo di pagamento in ogni sua fase. ### Lato server Innanzitutto crea un `PaymentIntent` sul tuo server e specifica l’importo da riscuotere e la valuta. Se hai già un’integrazione che utilizza l’[API Payment Intents](https://docs.stripe.com/payments/payment-intents.md), aggiungi `klarna` all’elenco dei [tipi di metodi di pagamento](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) per il tuo `PaymentIntent`. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur ``` ### Lato client Nel PaymentIntent restituito è presente una *chiave privata client* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)), che il client può utilizzare per completare la procedura di pagamento in modo sicuro anziché specificare tutto l’oggetto PaymentIntent. Sul lato client, richiedi un PaymentIntent dal tuo server e memorizza la chiave privata client. #### Swift ```swift import UIKit import StripePaymentsUI class CheckoutViewController: UIViewController { var paymentIntentClientSecret: String? func startCheckout() { // Request a PaymentIntent from your server and store its client secret } }} ``` ## Inviare il pagamento a Stripe [Lato client] Recupera la chiave privata client dal PaymentIntent che hai creato nel passaggio 2 e chiama il metodo [STPPaymentHandler confirmPayment:](https://stripe.dev/stripe-ios/stripe-payments/Classes/STPPaymentHandler.html#/c:@M@StripePayments@objc\(cs\)STPPaymentHandler\(im\)confirmPayment:withAuthenticationContext:completion:). Verrà visualizzata una vista web dove il cliente potrà completare il pagamento, che a sua volta avvia una chiamata al blocco di completamento con il risultato del pagamento. #### Swift ```swift let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) paymentIntentParams.paymentMethodParams = klarnaParams paymentIntentParams.shipping = shippingDetails STPPaymentHandler.shared().confirmPayment(paymentIntentParams, with: self) { (handlerStatus, paymentIntent, error) in switch handlerStatus { case .succeeded: // Payment succeeded case .canceled: // Payment was canceled case .failed: // Payment failed @unknown default: fatalError() } } ``` ## Eseguire il test dell'integrazione Klarna > Klarna utilizza i cookie per il tracciamento delle sessioni. Per testare diverse posizioni dei clienti, esci dalla sandbox Klarna dalla sessione precedente e utilizza i trigger pertinenti. Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito. #### Australia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 03-05-1994 | | Nome | Test | John | | Cognome | Person-au | snow | | Via | Wharf St | Silverwater Rd | | Numero civico | 4 | 1-5 | | Codice postale | 4877 | 2.128 | | Città | Port Douglas | Silverwater | | Area geografica | QLD | NSW | | Telefono | +61473752244 | +61473763254 | | Email | customer@email.au | customer+denied@email.au | #### Austria | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-at | Person-at | | Email | customer@email.at | customer+denied@email.at | | Via | Mariahilfer Straße | Mariahilfer Straße | | Numero civico | 47 | 47 | | Città | Vienna | Vienna | | Codice postale | 1060 | 1060 | | Telefono | +4306762600456 | +4306762600745 | #### Belgio | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-be | Person-be | | Email | customer@email.be | customer+denied@email.be | | Via | Grote Markt | Grote Markt | | Numero civico | 1 | 1 | | Città | Brussel | Brussel | | Codice postale | 1000 | 1000 | | Telefono | +32485121291 | +32485212123 | #### Canada | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ca | Person-ca | | Via | 2693 Byron Rd | 2693 Byron Rd | | Codice postale | V7H 1L9 | V7H 1L9 | | Città | North Vancouver | North Vancouver | | Area geografica | BC | BC | | Telefono | +15197438620 | +15197308624 | | Email | customer@email.ca | customer+denied@email.ca | #### Cechia | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 01-01-1970 | 27-06-1992 | | Nome | Test | Test | | Cognome | Person-cz | Person-cz | | Email | customer@email.cz | customer+denied@email.cz | | Via | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Codice postale | 155 00 | 155 00 | | Città | Praha | PRAHA 13 | | Telefono | +420771613715 | +420771623691 | #### Danimarca | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-dk | Person-dk | | Email | customer@email.dk | customer+denied@email.dk | | Via | Dantes Plads | Nygårdsvej | | Numero civico | 7 | 65 | | Città | København Ø | København Ø | | Codice postale | 1556 | 2100 | | Telefono | +4542555628 | +4552555348 | #### Finlandia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1999 | 01-01-1999 | | Nome | Test | Person FI | | Cognome | Person-fi | Test | | Email | customer@email.fi | customer+denied@email.fi | | Via | Mannerheimintie | Mannerheimintie | | Numero civico | 34 | 34 | | Città | Helsinki | Helsinki | | Codice postale | 00100 | 00100 | | Telefono | +358401234567 | +358401234568 | #### Francia | | Approvato | Rifiutato | | ---------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1990 | 10-07-1990 | | Luogo di nascita | Parigi | Parigi | | Nome | Test | Test | | Cognome | Person-fr | Person-fr | | Email | customer@email.fr | customer+denied@email.fr | | Via | rue La Fayette | rue La Fayette | | Numero civico | 33 | 33 | | Città | Parigi | Parigi | | Codice postale | 75009 | 75009 | | Telefono | +33689854321 | +33687984322 | #### Germania | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Mock | Test | | Cognome | Mock | Person-de | | Email | customer@email.de | customer+denied@email.de | | Via | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numero civico | 2 | 2 | | Città | Berlin | Berlin | | Codice postale | 10178 | 10178 | | Telefono | +49017614284340 | +49017610927312 | #### Grecia | | Approvato | Rifiutato | | ---------------------- | ----------------- | ------------------------ | | Identificativo fiscale | 090000045 | 090000045 | | Data di nascita | 01-01-1960 | 11-11-1970 | | Nome | Test | Test | | Cognome | Person-gr | Test-gr | | Email | customer@email.gr | customer+denied@email.gr | | Via | Kephisias | Baralo | | Numero civico | 37 | 56 | | Codice postale | 151 23 | 123 67 | | Città | Athina | Athina | | Telefono | +306945553624 | +306945553625 | #### Irlanda | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ie | Person-ie | | Email | customer@email.ie | customer+denied@email.ie | | Via | King Street South | King Street South | | Numero civico | 30 | 30 | | Città | Dublino | Dublino | | Codice EIR | D02 C838 | D02 C838 | | Telefono | +353855351400 | +353855351401 | #### Italia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 01-01-1980 | | Nome | Test | Test | | Cognome | Person-it | Person-it | | Email | customer@email.it | customer+denied@email.it | | Codice fiscale | RSSBNC80A41H501B | RSSBNC80A41H501B | | Via | Via Enrico Fermi | Via Enrico Fermi | | Numero civico | 150 | 150 | | Città | Roma | Roma | | Codice postale | 00146 | 00146 | | Telefono | +393339741231 | +393312232389 | #### Paesi Bassi | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Persona-nl | Persona-nl | | Email | customer@email.nl | customer+denied@email.nl | | Via | Osdorpplein | Osdorpplein | | Numero civico | 137 | 137 | | Città | Amsterdam | Amsterdam | | Codice postale | 1068 SR | 1068 SR | | Telefono | +31689124321 | +31632167678 | #### Nuova Zelanda | | Approvato | Rifiutato | | --------------- | ------------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-nz | Person-nz | | Via | Mount Wellington Highway | Mount Wellington Highway | | Numero civico | 286 | 286 | | Codice postale | 6.011 | 6.011 | | Città | Auckland | Wellington | | Telefono | +6427555290 | +642993007712 | | Indirizzo email | customer@email.nz | customer+denied@email.nz | #### Norvegia | | Approvato | Rifiutato | | ---------------- | ------------------- | ------------------------ | | Data di nascita | 01-08-1970 | 01-08-1970 | | Nome | Jane | Test | | Cognome | Test | Person-no | | Email | customer@email.no | customer+denied@email.no | | Numero personale | NO1087000571 | NO1087000148 | | Via | Edvard Munchs Plass | Sæffleberggate | | Numero civico | 1 | 56 | | Città | Oslo | Oslo | | Codice postale | 0194 | 0563 | | Telefono | +4740123456 | +4740123457 | #### Polonia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 05-05-1967 | 05-05-1967 | | Nome | Test | Test | | Cognome | Person-pl | Person-pl | | Via | Ul. Górczewska | Ul. Górczewska | | Numero civico | 124 | 124 | | Codice postale | 01-460 | 01-460 | | Città | Warszawa | Warszawa | | Telefono | +48795222223 | +48795223325 | | Email | customer@email.pl | customer+denied@email.pl | #### Portogallo | | Approvato | Rifiutato | | --------------- | ------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-pt | Person-pt | | Via | Avenida Dom João II | Avenida Dom João II | | Numero civico | 40 | 40 | | Codice postale | 1990-094 | 1990-094 | | Città | Lisboa | Lisboa | | Telefono | +351935556731 | +351915593837 | | Email | customer@email.pt | customer+denied@email.pt | #### Romania | | Approvata | Rifiutato | | ----------------------------------------- | ----------------- | ------------------------ | | Data di nascita | 25-12-1970 | 25-12-1970 | | Nome | di prova | di prova | | Cognome | Person-ro | Person-ro | | Email | customer@email.ro | customer+denied@email.ro | | Via | Drumul Taberei | Drumul Taberei | | Numero civico | 35 | 35 | | Città | București | București | | Settore | Sectorul 6 | Sectorul 6 | | Codice postale | 061357 | 061357 | | Telefono | +40741209876 | +40707127444 | | Numero di identificazione personale (CNP) | 1701225193558 | | #### Spagna | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-es | Person-es | | Email | customer@email.es | customer+denied@email.es | | Via | C. de Atocha | C. de Atocha | | Numero civico | 27 | 27 | | Città | Madrid | Madrid | | Codice postale | 28012 | 28012 | | Telefono | +34672563009 | +34682425101 | #### Svezia | | Approvato | Rifiutato | | --------------- | ----------------------- | ------------------------ | | Data di nascita | 21-03-1941 | 28-10-1941 | | Nome | Alice | Test | | Cognome | Test | Person-se | | Email | customer@email.se | customer+denied@email.se | | Via | Södra Blasieholmshamnen | Karlaplan | | Numero civico | 2 | 3 | | Città | Stockholm | Stockholm | | Codice postale | 11 148 | 11 460 | | Telefono | +46701740615 | +46701740620 | #### Svizzera | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1990 | 01-01-2000 | | Nome | Accettato | Cliente | | Cognome | Person-ch | Person-ch | | Via | Augustinergasse | Bahnhofstrasse | | Numero civico | 2 | 77 | | Codice postale | 4.051 | 8001 | | Città | Basilea | Zürich | | Telefono | +41758680000 | +41758680001 | | Indirizzo email | customer@email.ch | customer+denied@email.ch | #### Regno Unito | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-uk | Person-uk | | Email | customer@email.uk | customer+denied@email.uk | | Via | New Burlington Street | New Burlington Street | | Numero civico | 10 | 10 | | Appartamento | Apt 214 | Apt 214 | | Codice postale | W1S 3BE | W1S 3BE | | Città | Londra | Londra | | Telefono | +447755564318 | +447355505530 | #### Stati Uniti | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 07-10-1970 | 07-10-1970 | | Nome | Test | Test | | Cognome | Person-us | Person-us | | Email | customer@email.us | customer+denied@email.us | | Via | Amsterdam Ave | Amsterdam Ave | | Numero civico | 509 | 509 | | Città | New York | New York | | Stato | New York | New York | | Codice postale | 10024-3941 | 10024-3941 | | Telefono | +13106683312 | +13106354386 | ### Autenticazione a due fattori Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza `999999` per la mancata autenticazione. ### Modalità di rimborso Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso: | Tipo | Valore | | ----------------- | ----------------------------------------------------------------------------------------- | | Addebito diretto | DE11520513735120710131 | | Bonifico bancario | Banca demo | | Carta di credito | - Numero: 4111 1111 1111 1111 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | | Carta di debito | - Numero: 4012 8888 8888 1881 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | ## Optional: Separare l'autorizzazione dall'acquisizione Klarna supporta [l’autorizzazione e l’acquisizione separate](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md). Se si verifica un ritardo tra il pagamento e la consegna dei prodotti al cliente, autorizza prima il pagamento e acquisiscilo in un secondo tempo. Al momento dell’acquisizione, Klarna invia un estratto al cliente e stabilisce le date di scadenza per gli eventuali pagamenti successivi che devono essere effettuati. **Un pagamento Klarna autorizzato deve essere acquisito entro 28 giorni dall’autorizzazione**. Altrimenti, l’autorizzazione viene annullata automaticamente e non potrai più acquisire il pagamento. 1. Indicare a Stripe di eseguire solo l’autorizzazione Per indicare che vuoi separare l’autorizzazione dall’acquisizione, imposta [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) su `manual` quando crei il PaymentIntent. Il parametro indica a Stripe di limitarsi ad autorizzare l’importo sul conto Klarna del cliente. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d capture_method=manual ``` 1. Acquisire i fondi Dopo l’avvenuta autorizzazione, lo [stato](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status) PaymentIntent passa a `requires_capture`. Per acquisire i fondi autorizzati, crea una richiesta di [acquisizione](https://docs.stripe.com/api/payment_intents/capture.md) di PaymentIntent. L’importo totale autorizzato viene acquisito per impostazione predefinita, cioè non puoi acquisire un importo superiore. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/capture \ -u "<>:" \ -d amount_to_capture=750 ``` 1. (Facoltativo) Annullare l’autorizzazione Klarna confronta tutti i pagamenti autorizzati con il potere d’acquisto totale del cliente in Klarna. Per questo motivo devi annullare attivamente tutti i pagamenti autorizzati degli ordini che non puoi evadere (ad esempio, i prodotti non possono essere spediti) non appena il dato risulta evidente. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/cancel \ -u "<>:" \ -d cancellation_reason=abandoned ``` ## Optional: Gestire gli eventi successivi al pagamento Stripe invia un evento [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) quando il pagamento viene completato. Utilizza la Dashboard, un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) personalizzato o una soluzione partner per ricevere questi eventi ed eseguire azioni come l’invio della conferma di un ordine al cliente, la registrazione della vendita in un database o l’avvio del flusso di lavoro per una spedizione. Ascolta questi eventi invece di attendere un callback dal client. Sul client, il cliente potrebbe chiudere la finestra del browser o uscire dall’app prima dell’esecuzione del callback e i client malintenzionati potrebbero manipolare la risposta. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente anche di accettare metodi di pagamento diversi in futuro. Ulteriori informazioni sulle [differenze tra tutti i metodi di pagamento supportati](https://stripe.com/payments/payment-methods-guide). - **Gestisci gli eventi manualmente nella dashboard** Utilizza la dashboard per [visualizzare i pagamenti di test nella dashboard](https://dashboard.stripe.com/test/payments), inviare le ricevute tramite email, gestire i bonifici o ritentare i pagamenti non riusciti. - **Crea un webhook personalizzato** [Crea un gestore webhook personalizzato](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) per rilevare gli eventi e creare flussi di pagamento asincroni personalizzati. Esegui il test e il debug in locale dell’integrazione webhook con la CLI di Stripe. - **Integra un’app preimpostata** Gestisci eventi comuni dell’attività, come l’[automazione](https://stripe.partners/?f_category=automation), il [marketing e i saldi](https://stripe.partners/?f_category=marketing-and-sales), integrando una richiesta di registrazione del partner. ## Optional: Personalizzare la pagina di pagamento Klarna - **Precompilazione del modulo Klarna** Quando il cliente sceglie di pagare Klarna con un’opzione di pagamento posticipato, ad esempio un pagamento a rate e un finanziamento, Klarna raccoglie informazioni sufficienti per la valutazione del rischio e l’approvazione. Il tipo di informazioni dipende dal Paese del cliente. Per la maggior parte dei Paesi europei, si tratta dei dettagli di fatturazione completi e della data di nascita. Puoi specificare queste informazioni attraverso l’API e il modulo verrà precompilato quando il cliente arriverà sulla pagina. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode "return_url=https://example.com/checkout/complete" \ -d "payment_method_data[type]=klarna" \ --data-urlencode "payment_method_data[billing_details][email]=customer@example.com" \ -d "payment_method_data[billing_details][name]=Jenny Rosen" \ --data-urlencode "payment_method_data[billing_details][phone]=+4915142321555" \ -d "payment_method_data[billing_details][address][line1]=Alexanderplatz 1" \ -d "payment_method_data[billing_details][address][city]=Berlin" \ -d "payment_method_data[billing_details][address][postal_code]=10551" \ -d "payment_method_data[billing_details][address][country]=DE" \ -d "payment_method_data[klarna][dob][day]=10" \ -d "payment_method_data[klarna][dob][month]=10" \ -d "payment_method_data[klarna][dob][year]=1990" ``` ![Screenshot di una pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall'API e personalizzata in modo da visualizzarla in inglese](https://b.stripecdn.com/docs-statics-srv/assets/klarna-kpp-prefilled-customized.75932cc9aa3223960aa2fcf769c1ce62.png) Pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall’API e personalizzata in modo da visualizzarla in inglese per un cliente in Germania ## Optional: Aggiungere voci riga al PaymentIntent > #### Voci riga unificate con Klarna > > Per ottimizzare i tassi di approvazione durante l’integrazione con Klarna, includi dati `line_items` per rappresentare il contenuto del carrello di un acquirente. Per l’accesso anticipato, consulta le [voci riga di Payments](https://docs.stripe.com/payments/payment-line-items.md). ## Pagamenti non riusciti Klarna decide se accettare o rifiutare una transazione in base a diversi fattori, ad esempio da quanto tempo l’acquirente utilizza Klarna, l’importo in sospeso che il cliente deve rimborsare o il valore dell’ordine corrente. Quando il cliente seleziona un metodo di pagamento a rate, Klarna esegue una valutazione del rischio prima di accettare la transazione. A seconda del risultato della valutazione, dell’importo della transazione o del debito residuo del cliente, Klarna potrebbe rifiutare la transazione. Pertanto ti consigliamo di inserire altre opzioni di pagamento nel flusso di completamento della transazione, come ad esempio `card`. In questi casi, il [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) diventa automaticamente a `requires_payment_method`. I clienti devono completare il pagamento entro 48 ore dal reindirizzamento al sito Klarna. Se non viene intrapresa alcuna azione dopo 48 ore, l’oggetto [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) passa automaticamente da `requires_action` a `requires_payment_method`. In questi casi, invita il cliente a riprovare con una diversa opzione di pagamento presente nel tuo flusso di completamento della transazione. ### Limiti di frequenza di Klarna Le richieste API a Klarna sono soggette a limiti di frequenza aggiuntivi oltre ai [limiti di frequenza generali dell’API di Stripe](https://docs.stripe.com/rate-limits.md). Questi limiti possono variare a seconda della forma delle richieste API effettuate. In generale, se si effettuano più di 50 richieste al secondo, è possibile che venga applicato un limite di frequenza sotto forma di risposte con codice di stato HTTP `400` o `402`. Se temi che l’utilizzo possa raggiungere questi livelli, contattaci utilizzando il modulo di [assistenza Stripe](https://support.stripe.com), poiché Klarna potrebbe essere in grado di aumentare questi limiti caso per caso. ### Messaggi di errore In genere i pagamenti Klarna non riusciti restituiscono uno dei seguenti codici di errore. Questi codici vengono visualizzati nell’oggetto API [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error). > Prima della versione API `2023-08-16`, tutti gli errori di Klarna venivano segnalati come [payment_intent_authentication_failure](https://docs.stripe.com/error-codes.md#payment_intent_authentication_failure). Verifica che la tua versione dell’API sia aggiornata per visualizzare gli errori dettagliati elencati di seguito. | Codice di errore | Spiegazione | | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | [payment_method_customer_decline](https://docs.stripe.com/error-codes.md#payment-method-customer-decline) | Il cliente ha annullato il pagamento sulla pagina di Klarna | | [payment_method_provider_decline](https://docs.stripe.com/error-codes.md#payment-method-provider-decline) | Klarna ha rifiutato il pagamento del cliente | | [payment_intent_payment_attempt_expired](https://docs.stripe.com/error-codes.md#payment-intent-payment-attempt-expired) | Il cliente non ha mai completato il pagamento sulla pagina di Klarna e la sessione di pagamento è scaduta | | [payment_method_not_available](https://docs.stripe.com/error-codes.md#payment-method-not-available) | Si è verificato un errore imprevisto durante il tentativo di utilizzare Klarna | # Android > This is a Android for when payment-ui is mobile and platform is android. View the full page at https://docs.stripe.com/payments/klarna/accept-a-payment?payment-ui=mobile&platform=android. L’accettazione di Klarna nella tua app consiste nella visualizzazione di una vista web con cui il cliente deve autenticare il proprio pagamento. Il cliente torna quindi alla tua app e tu puoi *verificare* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) immediatamente se il pagamento ha avuto esito positivo o negativo. ## Configura Stripe [Lato server] [Lato client] Innanzitutto, devi creare un account Stripe. [Registrati ora](https://dashboard.stripe.com/register). ### Lato server Per questa integrazione sono necessari endpoint sul server che comunicano con l’API Stripe. Utilizza le nostre librerie ufficiali per accedere all’API Stripe dal tuo server: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ### Lato client L’[SDK per Android di Stripe](https://github.com/stripe/stripe-android) è open source e [completamente documentato](https://stripe.dev/stripe-android/). Per installare l’SDK, aggiungi `stripe-android` al blocco `dependencies` del tuo file [app/build.gradle](https://developer.android.com/studio/build/dependencies): #### Kotlin ```kotlin plugins { id("com.android.application") } android { ... } dependencies { // ... // Stripe Android SDK implementation("com.stripe:stripe-android:23.8.0") // Include the financial connections SDK to support US bank account as a payment method implementation("com.stripe:financial-connections:23.8.0") } ``` > Per ulteriori informazioni sulla versione più recente e su quelle precedenti dell’SDK, consulta la pagina [Releases](https://github.com/stripe/stripe-android/releases) su GitHub. Per ricevere una notifica quando viene pubblicata una nuova versione, [imposta il controllo delle versioni per il repository](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository). Configura l’SDK con la tua [chiave pubblicabile](https://dashboard.stripe.com/apikeys) di Stripe in modo che possa inviare le richieste all’API Stripe, ad esempio nella sottoclasse `Application`: #### Kotlin ```kotlin import com.stripe.android.PaymentConfiguration class MyApp : Application() { override fun onCreate() { super.onCreate() PaymentConfiguration.init( applicationContext, "<>" ) } } ``` > Usa le [chiavi di test](https://docs.stripe.com/keys.md#obtain-api-keys) durante i test e le chiavi della [modalità live](https://docs.stripe.com/keys.md#test-live-modes) quando pubblichi l’app. I nostri esempi di codice Stripe utilizzano inoltre [OkHttp](https://github.com/square/okhttp) e [GSON](https://github.com/google/gson) per inviare richieste HTTP a un server. ## Creare un PaymentIntent [Lato server] [Lato client] Un [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) è un oggetto che rappresenta la tua intenzione di riscuotere un pagamento da un cliente e traccia il ciclo di vita del processo di pagamento in ogni sua fase. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur ``` ### Lato client Nel PaymentIntent restituito è presente una *chiave privata client* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)), che il client può utilizzare per completare la procedura di pagamento in modo sicuro anziché specificare tutto l’oggetto PaymentIntent. Sul lato client, richiedi un PaymentIntent dal tuo server e memorizza la chiave privata client. #### Kotlin ```kotlin class KlarnaPaymentActivity: AppCompatActivity() { private lateinit var paymentIntentClientSecret: String override fun onCreate(savedInstanceState: Bundle?) { // ... startCheckout() } private fun startCheckout() { // Request a PaymentIntent from your server and store its client secret } } ``` ## Inviare il pagamento a Stripe [Lato client] Recupera chiave privata client dal PaymentIntent che hai creato nel passaggio 2 e richiama il metodo [conferma PaymentLauncher](https://stripe.dev/stripe-android/payments-core/com.stripe.android.payments.paymentlauncher/-payment-launcher/index.html#74063765%2FFunctions%2F-1622557690) Verrà visualizzata una schermata web in cui il cliente potrà completare il pagamento. Successivamente, onActivityResult verrà richiamato con il risultato del pagamento. #### Kotlin ```kotlin class KlarnaPaymentActivity : AppCompatActivity() { // ... private lateinit var paymentIntentClientSecret: String private val paymentLauncher: PaymentLauncher by lazy { val paymentConfiguration = PaymentConfiguration.getInstance(applicationContext) PaymentLauncher.Companion.create( this, paymentConfiguration.publishableKey, paymentConfiguration.stripeAccountId, ::onPaymentResult ) } private fun startCheckout() { // ... val confirmParams = ConfirmPaymentIntentParams .createWithPaymentMethodCreateParams( paymentMethodCreateParams = paymentMethodCreateParams, clientSecret = paymentIntentClientSecret, shipping = shippingDetails ) paymentLauncher.confirm(confirmParams) } private fun onPaymentResult(paymentResult: PaymentResult) { when (paymentResult) { is PaymentResult.Completed -> { // show success UI } is PaymentResult.Canceled -> { // handle cancel flow } is PaymentResult.Failed -> { // handle failures // (for example, the customer may need to choose a new payment // method) } } } } ``` ## Eseguire il test dell'integrazione Klarna > Klarna utilizza i cookie per il tracciamento delle sessioni. Per testare diverse posizioni dei clienti, esci dalla sandbox Klarna dalla sessione precedente e utilizza i trigger pertinenti. Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito. #### Australia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 03-05-1994 | | Nome | Test | John | | Cognome | Person-au | snow | | Via | Wharf St | Silverwater Rd | | Numero civico | 4 | 1-5 | | Codice postale | 4877 | 2.128 | | Città | Port Douglas | Silverwater | | Area geografica | QLD | NSW | | Telefono | +61473752244 | +61473763254 | | Email | customer@email.au | customer+denied@email.au | #### Austria | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-at | Person-at | | Email | customer@email.at | customer+denied@email.at | | Via | Mariahilfer Straße | Mariahilfer Straße | | Numero civico | 47 | 47 | | Città | Vienna | Vienna | | Codice postale | 1060 | 1060 | | Telefono | +4306762600456 | +4306762600745 | #### Belgio | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-be | Person-be | | Email | customer@email.be | customer+denied@email.be | | Via | Grote Markt | Grote Markt | | Numero civico | 1 | 1 | | Città | Brussel | Brussel | | Codice postale | 1000 | 1000 | | Telefono | +32485121291 | +32485212123 | #### Canada | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ca | Person-ca | | Via | 2693 Byron Rd | 2693 Byron Rd | | Codice postale | V7H 1L9 | V7H 1L9 | | Città | North Vancouver | North Vancouver | | Area geografica | BC | BC | | Telefono | +15197438620 | +15197308624 | | Email | customer@email.ca | customer+denied@email.ca | #### Cechia | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 01-01-1970 | 27-06-1992 | | Nome | Test | Test | | Cognome | Person-cz | Person-cz | | Email | customer@email.cz | customer+denied@email.cz | | Via | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Codice postale | 155 00 | 155 00 | | Città | Praha | PRAHA 13 | | Telefono | +420771613715 | +420771623691 | #### Danimarca | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-dk | Person-dk | | Email | customer@email.dk | customer+denied@email.dk | | Via | Dantes Plads | Nygårdsvej | | Numero civico | 7 | 65 | | Città | København Ø | København Ø | | Codice postale | 1556 | 2100 | | Telefono | +4542555628 | +4552555348 | #### Finlandia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1999 | 01-01-1999 | | Nome | Test | Person FI | | Cognome | Person-fi | Test | | Email | customer@email.fi | customer+denied@email.fi | | Via | Mannerheimintie | Mannerheimintie | | Numero civico | 34 | 34 | | Città | Helsinki | Helsinki | | Codice postale | 00100 | 00100 | | Telefono | +358401234567 | +358401234568 | #### Francia | | Approvato | Rifiutato | | ---------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1990 | 10-07-1990 | | Luogo di nascita | Parigi | Parigi | | Nome | Test | Test | | Cognome | Person-fr | Person-fr | | Email | customer@email.fr | customer+denied@email.fr | | Via | rue La Fayette | rue La Fayette | | Numero civico | 33 | 33 | | Città | Parigi | Parigi | | Codice postale | 75009 | 75009 | | Telefono | +33689854321 | +33687984322 | #### Germania | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Mock | Test | | Cognome | Mock | Person-de | | Email | customer@email.de | customer+denied@email.de | | Via | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numero civico | 2 | 2 | | Città | Berlin | Berlin | | Codice postale | 10178 | 10178 | | Telefono | +49017614284340 | +49017610927312 | #### Grecia | | Approvato | Rifiutato | | ---------------------- | ----------------- | ------------------------ | | Identificativo fiscale | 090000045 | 090000045 | | Data di nascita | 01-01-1960 | 11-11-1970 | | Nome | Test | Test | | Cognome | Person-gr | Test-gr | | Email | customer@email.gr | customer+denied@email.gr | | Via | Kephisias | Baralo | | Numero civico | 37 | 56 | | Codice postale | 151 23 | 123 67 | | Città | Athina | Athina | | Telefono | +306945553624 | +306945553625 | #### Irlanda | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ie | Person-ie | | Email | customer@email.ie | customer+denied@email.ie | | Via | King Street South | King Street South | | Numero civico | 30 | 30 | | Città | Dublino | Dublino | | Codice EIR | D02 C838 | D02 C838 | | Telefono | +353855351400 | +353855351401 | #### Italia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 01-01-1980 | | Nome | Test | Test | | Cognome | Person-it | Person-it | | Email | customer@email.it | customer+denied@email.it | | Codice fiscale | RSSBNC80A41H501B | RSSBNC80A41H501B | | Via | Via Enrico Fermi | Via Enrico Fermi | | Numero civico | 150 | 150 | | Città | Roma | Roma | | Codice postale | 00146 | 00146 | | Telefono | +393339741231 | +393312232389 | #### Paesi Bassi | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Persona-nl | Persona-nl | | Email | customer@email.nl | customer+denied@email.nl | | Via | Osdorpplein | Osdorpplein | | Numero civico | 137 | 137 | | Città | Amsterdam | Amsterdam | | Codice postale | 1068 SR | 1068 SR | | Telefono | +31689124321 | +31632167678 | #### Nuova Zelanda | | Approvato | Rifiutato | | --------------- | ------------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-nz | Person-nz | | Via | Mount Wellington Highway | Mount Wellington Highway | | Numero civico | 286 | 286 | | Codice postale | 6.011 | 6.011 | | Città | Auckland | Wellington | | Telefono | +6427555290 | +642993007712 | | Indirizzo email | customer@email.nz | customer+denied@email.nz | #### Norvegia | | Approvato | Rifiutato | | ---------------- | ------------------- | ------------------------ | | Data di nascita | 01-08-1970 | 01-08-1970 | | Nome | Jane | Test | | Cognome | Test | Person-no | | Email | customer@email.no | customer+denied@email.no | | Numero personale | NO1087000571 | NO1087000148 | | Via | Edvard Munchs Plass | Sæffleberggate | | Numero civico | 1 | 56 | | Città | Oslo | Oslo | | Codice postale | 0194 | 0563 | | Telefono | +4740123456 | +4740123457 | #### Polonia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 05-05-1967 | 05-05-1967 | | Nome | Test | Test | | Cognome | Person-pl | Person-pl | | Via | Ul. Górczewska | Ul. Górczewska | | Numero civico | 124 | 124 | | Codice postale | 01-460 | 01-460 | | Città | Warszawa | Warszawa | | Telefono | +48795222223 | +48795223325 | | Email | customer@email.pl | customer+denied@email.pl | #### Portogallo | | Approvato | Rifiutato | | --------------- | ------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-pt | Person-pt | | Via | Avenida Dom João II | Avenida Dom João II | | Numero civico | 40 | 40 | | Codice postale | 1990-094 | 1990-094 | | Città | Lisboa | Lisboa | | Telefono | +351935556731 | +351915593837 | | Email | customer@email.pt | customer+denied@email.pt | #### Romania | | Approvata | Rifiutato | | ----------------------------------------- | ----------------- | ------------------------ | | Data di nascita | 25-12-1970 | 25-12-1970 | | Nome | di prova | di prova | | Cognome | Person-ro | Person-ro | | Email | customer@email.ro | customer+denied@email.ro | | Via | Drumul Taberei | Drumul Taberei | | Numero civico | 35 | 35 | | Città | București | București | | Settore | Sectorul 6 | Sectorul 6 | | Codice postale | 061357 | 061357 | | Telefono | +40741209876 | +40707127444 | | Numero di identificazione personale (CNP) | 1701225193558 | | #### Spagna | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-es | Person-es | | Email | customer@email.es | customer+denied@email.es | | Via | C. de Atocha | C. de Atocha | | Numero civico | 27 | 27 | | Città | Madrid | Madrid | | Codice postale | 28012 | 28012 | | Telefono | +34672563009 | +34682425101 | #### Svezia | | Approvato | Rifiutato | | --------------- | ----------------------- | ------------------------ | | Data di nascita | 21-03-1941 | 28-10-1941 | | Nome | Alice | Test | | Cognome | Test | Person-se | | Email | customer@email.se | customer+denied@email.se | | Via | Södra Blasieholmshamnen | Karlaplan | | Numero civico | 2 | 3 | | Città | Stockholm | Stockholm | | Codice postale | 11 148 | 11 460 | | Telefono | +46701740615 | +46701740620 | #### Svizzera | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1990 | 01-01-2000 | | Nome | Accettato | Cliente | | Cognome | Person-ch | Person-ch | | Via | Augustinergasse | Bahnhofstrasse | | Numero civico | 2 | 77 | | Codice postale | 4.051 | 8001 | | Città | Basilea | Zürich | | Telefono | +41758680000 | +41758680001 | | Indirizzo email | customer@email.ch | customer+denied@email.ch | #### Regno Unito | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-uk | Person-uk | | Email | customer@email.uk | customer+denied@email.uk | | Via | New Burlington Street | New Burlington Street | | Numero civico | 10 | 10 | | Appartamento | Apt 214 | Apt 214 | | Codice postale | W1S 3BE | W1S 3BE | | Città | Londra | Londra | | Telefono | +447755564318 | +447355505530 | #### Stati Uniti | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 07-10-1970 | 07-10-1970 | | Nome | Test | Test | | Cognome | Person-us | Person-us | | Email | customer@email.us | customer+denied@email.us | | Via | Amsterdam Ave | Amsterdam Ave | | Numero civico | 509 | 509 | | Città | New York | New York | | Stato | New York | New York | | Codice postale | 10024-3941 | 10024-3941 | | Telefono | +13106683312 | +13106354386 | ### Autenticazione a due fattori Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza `999999` per la mancata autenticazione. ### Modalità di rimborso Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso: | Tipo | Valore | | ----------------- | ----------------------------------------------------------------------------------------- | | Addebito diretto | DE11520513735120710131 | | Bonifico bancario | Banca demo | | Carta di credito | - Numero: 4111 1111 1111 1111 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | | Carta di debito | - Numero: 4012 8888 8888 1881 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | ## Optional: Separare l'autorizzazione dall'addebito Klarna supporta [l’autorizzazione e l’acquisizione separate](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md). Se si verifica un ritardo tra il pagamento e la consegna dei prodotti al cliente, autorizza prima il pagamento e acquisiscilo in un secondo tempo. Al momento dell’acquisizione, Klarna invia un estratto al cliente e stabilisce le date di scadenza per gli eventuali pagamenti successivi che devono essere effettuati. **Un pagamento Klarna autorizzato deve essere acquisito entro 28 giorni dall’autorizzazione**. Altrimenti, l’autorizzazione viene annullata automaticamente e non potrai più acquisire il pagamento. 1. Indicare a Stripe di eseguire solo l’autorizzazione Per indicare che vuoi separare l’autorizzazione dall’acquisizione, imposta [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) su `manual` quando crei il PaymentIntent. Il parametro indica a Stripe di limitarsi ad autorizzare l’importo sul conto Klarna del cliente. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d capture_method=manual ``` 1. Acquisire i fondi Dopo l’avvenuta autorizzazione, lo [stato](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status) PaymentIntent passa a `requires_capture`. Per acquisire i fondi autorizzati, crea una richiesta di [acquisizione](https://docs.stripe.com/api/payment_intents/capture.md) di PaymentIntent. L’importo totale autorizzato viene acquisito per impostazione predefinita, cioè non puoi acquisire un importo superiore. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/capture \ -u "<>:" \ -d amount_to_capture=750 ``` 1. (Facoltativo) Annullare l’autorizzazione Klarna confronta tutti i pagamenti autorizzati con il potere d’acquisto totale del cliente in Klarna. Per questo motivo devi annullare attivamente tutti i pagamenti autorizzati degli ordini che non puoi evadere (ad esempio, i prodotti non possono essere spediti) non appena il dato risulta evidente. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/cancel \ -u "<>:" \ -d cancellation_reason=abandoned ``` ## Optional: Gestire gli eventi successivi al pagamento Stripe invia un evento [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) quando il pagamento viene completato. Utilizza la Dashboard, un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) personalizzato o una soluzione partner per ricevere questi eventi ed eseguire azioni come l’invio della conferma di un ordine al cliente, la registrazione della vendita in un database o l’avvio del flusso di lavoro per una spedizione. Ascolta questi eventi invece di attendere un callback dal client. Sul client, il cliente potrebbe chiudere la finestra del browser o uscire dall’app prima dell’esecuzione del callback e i client malintenzionati potrebbero manipolare la risposta. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente anche di accettare metodi di pagamento diversi in futuro. Ulteriori informazioni sulle [differenze tra tutti i metodi di pagamento supportati](https://stripe.com/payments/payment-methods-guide). - **Gestisci gli eventi manualmente nella dashboard** Utilizza la dashboard per [visualizzare i pagamenti di test nella dashboard](https://dashboard.stripe.com/test/payments), inviare le ricevute tramite email, gestire i bonifici o ritentare i pagamenti non riusciti. - **Crea un webhook personalizzato** [Crea un gestore webhook personalizzato](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) per rilevare gli eventi e creare flussi di pagamento asincroni personalizzati. Esegui il test e il debug in locale dell’integrazione webhook con la CLI di Stripe. - **Integra un’app preimpostata** Gestisci eventi comuni dell’attività, come l’[automazione](https://stripe.partners/?f_category=automation), il [marketing e i saldi](https://stripe.partners/?f_category=marketing-and-sales), integrando una richiesta di registrazione del partner. ## Optional: Personalizzare la pagina di pagamento Klarna - **Precompilazione del modulo Klarna** Quando il cliente sceglie di pagare Klarna con un’opzione di pagamento posticipato, ad esempio un pagamento a rate e un finanziamento, Klarna raccoglie informazioni sufficienti per la valutazione del rischio e l’approvazione. Il tipo di informazioni dipende dal Paese del cliente. Per la maggior parte dei Paesi europei, si tratta dei dettagli di fatturazione completi e della data di nascita. Puoi specificare queste informazioni attraverso l’API e il modulo verrà precompilato quando il cliente arriverà sulla pagina. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode "return_url=https://example.com/checkout/complete" \ -d "payment_method_data[type]=klarna" \ --data-urlencode "payment_method_data[billing_details][email]=customer@example.com" \ -d "payment_method_data[billing_details][name]=Jenny Rosen" \ --data-urlencode "payment_method_data[billing_details][phone]=+4915142321555" \ -d "payment_method_data[billing_details][address][line1]=Alexanderplatz 1" \ -d "payment_method_data[billing_details][address][city]=Berlin" \ -d "payment_method_data[billing_details][address][postal_code]=10551" \ -d "payment_method_data[billing_details][address][country]=DE" \ -d "payment_method_data[klarna][dob][day]=10" \ -d "payment_method_data[klarna][dob][month]=10" \ -d "payment_method_data[klarna][dob][year]=1990" ``` ![Screenshot di una pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall'API e personalizzata in modo da visualizzarla in inglese](https://b.stripecdn.com/docs-statics-srv/assets/klarna-kpp-prefilled-customized.75932cc9aa3223960aa2fcf769c1ce62.png) Pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall’API e personalizzata in modo da visualizzarla in inglese per un cliente in Germania ## Optional: Aggiungere voci riga al PaymentIntent > #### Voci riga unificate con Klarna > > Per ottimizzare i tassi di approvazione durante l’integrazione con Klarna, includi dati `line_items` per rappresentare il contenuto del carrello di un acquirente. Per l’accesso anticipato, consulta le [voci riga di Payments](https://docs.stripe.com/payments/payment-line-items.md). ## Pagamenti non riusciti Klarna decide se accettare o rifiutare una transazione in base a diversi fattori, ad esempio da quanto tempo l’acquirente utilizza Klarna, l’importo in sospeso che il cliente deve rimborsare o il valore dell’ordine corrente. Quando il cliente seleziona un metodo di pagamento a rate, Klarna esegue una valutazione del rischio prima di accettare la transazione. A seconda del risultato della valutazione, dell’importo della transazione o del debito residuo del cliente, Klarna potrebbe rifiutare la transazione. Pertanto ti consigliamo di inserire altre opzioni di pagamento nel flusso di completamento della transazione, come ad esempio `card`. In questi casi, il [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) diventa automaticamente a `requires_payment_method`. I clienti devono completare il pagamento entro 48 ore dal reindirizzamento al sito Klarna. Se non viene intrapresa alcuna azione dopo 48 ore, l’oggetto [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) passa automaticamente da `requires_action` a `requires_payment_method`. In questi casi, invita il cliente a riprovare con una diversa opzione di pagamento presente nel tuo flusso di completamento della transazione. ### Limiti di frequenza di Klarna Le richieste API a Klarna sono soggette a limiti di frequenza aggiuntivi oltre ai [limiti di frequenza generali dell’API di Stripe](https://docs.stripe.com/rate-limits.md). Questi limiti possono variare a seconda della forma delle richieste API effettuate. In generale, se si effettuano più di 50 richieste al secondo, è possibile che venga applicato un limite di frequenza sotto forma di risposte con codice di stato HTTP `400` o `402`. Se temi che l’utilizzo possa raggiungere questi livelli, contattaci utilizzando il modulo di [assistenza Stripe](https://support.stripe.com), poiché Klarna potrebbe essere in grado di aumentare questi limiti caso per caso. ### Messaggi di errore In genere i pagamenti Klarna non riusciti restituiscono uno dei seguenti codici di errore. Questi codici vengono visualizzati nell’oggetto API [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error). > Prima della versione API `2023-08-16`, tutti gli errori di Klarna venivano segnalati come [payment_intent_authentication_failure](https://docs.stripe.com/error-codes.md#payment_intent_authentication_failure). Verifica che la tua versione dell’API sia aggiornata per visualizzare gli errori dettagliati elencati di seguito. | Codice di errore | Spiegazione | | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | [payment_method_customer_decline](https://docs.stripe.com/error-codes.md#payment-method-customer-decline) | Il cliente ha annullato il pagamento sulla pagina di Klarna | | [payment_method_provider_decline](https://docs.stripe.com/error-codes.md#payment-method-provider-decline) | Klarna ha rifiutato il pagamento del cliente | | [payment_intent_payment_attempt_expired](https://docs.stripe.com/error-codes.md#payment-intent-payment-attempt-expired) | Il cliente non ha mai completato il pagamento sulla pagina di Klarna e la sessione di pagamento è scaduta | | [payment_method_not_available](https://docs.stripe.com/error-codes.md#payment-method-not-available) | Si è verificato un errore imprevisto durante il tentativo di utilizzare Klarna | # React Native > This is a React Native for when payment-ui is mobile and platform is react-native. View the full page at https://docs.stripe.com/payments/klarna/accept-a-payment?payment-ui=mobile&platform=react-native. L’accettazione di Klarna nella tua app consiste nella visualizzazione di una vista web con cui il cliente deve autenticare il proprio pagamento. Il cliente torna quindi alla tua app e tu puoi *verificare* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) immediatamente se il pagamento ha avuto esito positivo o negativo. ## Configurare Stripe [Lato server] [Lato client] ### Lato server Per questa integrazione sono necessari endpoint sul server che parlano con l’API Stripe. Utilizza le nostre librerie ufficiali per accedere all’API Stripe dal tuo server: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ### Lato client L’[SDK React Native](https://github.com/stripe/stripe-react-native) è open source e completamente documentato. Internamente, utilizza SDK [iOS nativi](https://github.com/stripe/stripe-ios) e [Android](https://github.com/stripe/stripe-android). Per installare l’SDK React Native di Stripe, esegui uno dei seguenti comandi nella directory del progetto (a seconda del gestore di pacchetti utilizzato): #### yarn ```bash yarn add @stripe/stripe-react-native ``` #### npm ```bash npm install @stripe/stripe-react-native ``` Poi, installa alcune altre dipendenze necessarie: - Per iOS, vai alla directory **ios** ed esegui `pod install` per garantire di installare anche le dipendenze native richieste. - Per Android, non ci sono più dipendenze da installare. > Per aggiungere l’assistenza di TypeScript, ti consigliamo di consultare e seguire le indicazioni incluse nella [guida ufficiale di TypeScript](https://reactnative.dev/docs/typescript#adding-typescript-to-an-existing-project). ### Inizializzazione di Stripe Per inizializzare Stripe nell’app React Native, esegui il wrapping della schermata di pagamento con il componente `StripeProvider` oppure utilizza il metodo di inizializzazione `initStripe`. È richiesta solo la [chiave pubblicabile](https://docs.stripe.com/keys.md#obtain-api-keys) dell’API in `publishableKey`. L’esempio seguente spiega come inizializzare Stripe utilizzando il componente `StripeProvider`. ```jsx import { useState, useEffect } from 'react'; import { StripeProvider } from '@stripe/stripe-react-native'; function App() { const [publishableKey, setPublishableKey] = useState(''); const fetchPublishableKey = async () => { const key = await fetchKey(); // fetch key from your server here setPublishableKey(key); }; useEffect(() => { fetchPublishableKey(); }, []); return ( {/* Your app code here */} ); } ``` > Usa le [chiavi di test](https://docs.stripe.com/keys.md#obtain-api-keys) dell’API durante i test e le attività di sviluppo e le chiavi della [modalità live](https://docs.stripe.com/keys.md#test-live-modes) quando pubblichi l’app. ## Creare un PaymentIntent [Lato server] [Lato client] Stripe utilizza un oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) per rappresentare la tua intenzione di riscuotere un pagamento da un cliente, monitorando i tentativi di addebito e le modifiche dello stato del pagamento durante l’intera procedura. ### Lato server Innanzitutto crea un `PaymentIntent` sul tuo server e specifica l’importo da riscuotere e la valuta. Se hai già un’integrazione che utilizza l’[API Payment Intents](https://docs.stripe.com/payments/payment-intents.md), aggiungi `klarna` all’elenco dei [tipi di metodi di pagamento](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) per il tuo `PaymentIntent`. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur ``` ### Lato client Un PaymentIntent include una *chiave privata client* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)). Tale chiave può essere utilizzata nell’app React Native per completare la procedura di pagamento in sicurezza invece di specificare l’intero oggetto PaymentIntent. Nella tua app, richiedi un PaymentIntent al server e memorizza la chiave privata client. ```javascript function PaymentScreen() { // ... const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ currency: 'eur', }), }); const {clientSecret} = await response.json(); return clientSecret; }; return ...; } ``` ## Inviare il pagamento a Stripe [Lato client] Per inviare il pagamento a Stripe occorre la chiave privata client del PaymentIntent che hai creato. Includila nella chiamata a `confirmPayment`: ```javascript import {Picker} from '@react-native-picker/picker'; import {confirmPayment} from '@stripe/stripe-react-native'; export default function MyPaymentScreen() { const handlePayPress = async () => { // Fetch the intent client secret from the backend. // See `fetchPaymentIntentClientSecret()`'s implementation above. const clientSecret = await fetchPaymentIntentClientSecret(); const {error, paymentIntent} = await confirmPayment(clientSecret, { paymentMethodType: 'Klarna' }, }); if (error) { console.log('Payment confirmation error', error.message); // Update UI to prompt user to retry payment (and possibly another payment method) } else if (paymentIntent) { Alert.alert('Success', `The payment was confirmed successfully!`); } }; ``` ## Eseguire il test dell'integrazione Klarna > Klarna utilizza i cookie per il tracciamento delle sessioni. Per testare diverse posizioni dei clienti, esci dalla sandbox Klarna dalla sessione precedente e utilizza i trigger pertinenti. Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito. #### Australia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 03-05-1994 | | Nome | Test | John | | Cognome | Person-au | snow | | Via | Wharf St | Silverwater Rd | | Numero civico | 4 | 1-5 | | Codice postale | 4877 | 2.128 | | Città | Port Douglas | Silverwater | | Area geografica | QLD | NSW | | Telefono | +61473752244 | +61473763254 | | Email | customer@email.au | customer+denied@email.au | #### Austria | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-at | Person-at | | Email | customer@email.at | customer+denied@email.at | | Via | Mariahilfer Straße | Mariahilfer Straße | | Numero civico | 47 | 47 | | Città | Vienna | Vienna | | Codice postale | 1060 | 1060 | | Telefono | +4306762600456 | +4306762600745 | #### Belgio | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-be | Person-be | | Email | customer@email.be | customer+denied@email.be | | Via | Grote Markt | Grote Markt | | Numero civico | 1 | 1 | | Città | Brussel | Brussel | | Codice postale | 1000 | 1000 | | Telefono | +32485121291 | +32485212123 | #### Canada | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ca | Person-ca | | Via | 2693 Byron Rd | 2693 Byron Rd | | Codice postale | V7H 1L9 | V7H 1L9 | | Città | North Vancouver | North Vancouver | | Area geografica | BC | BC | | Telefono | +15197438620 | +15197308624 | | Email | customer@email.ca | customer+denied@email.ca | #### Cechia | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 01-01-1970 | 27-06-1992 | | Nome | Test | Test | | Cognome | Person-cz | Person-cz | | Email | customer@email.cz | customer+denied@email.cz | | Via | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Codice postale | 155 00 | 155 00 | | Città | Praha | PRAHA 13 | | Telefono | +420771613715 | +420771623691 | #### Danimarca | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-dk | Person-dk | | Email | customer@email.dk | customer+denied@email.dk | | Via | Dantes Plads | Nygårdsvej | | Numero civico | 7 | 65 | | Città | København Ø | København Ø | | Codice postale | 1556 | 2100 | | Telefono | +4542555628 | +4552555348 | #### Finlandia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1999 | 01-01-1999 | | Nome | Test | Person FI | | Cognome | Person-fi | Test | | Email | customer@email.fi | customer+denied@email.fi | | Via | Mannerheimintie | Mannerheimintie | | Numero civico | 34 | 34 | | Città | Helsinki | Helsinki | | Codice postale | 00100 | 00100 | | Telefono | +358401234567 | +358401234568 | #### Francia | | Approvato | Rifiutato | | ---------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1990 | 10-07-1990 | | Luogo di nascita | Parigi | Parigi | | Nome | Test | Test | | Cognome | Person-fr | Person-fr | | Email | customer@email.fr | customer+denied@email.fr | | Via | rue La Fayette | rue La Fayette | | Numero civico | 33 | 33 | | Città | Parigi | Parigi | | Codice postale | 75009 | 75009 | | Telefono | +33689854321 | +33687984322 | #### Germania | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Mock | Test | | Cognome | Mock | Person-de | | Email | customer@email.de | customer+denied@email.de | | Via | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numero civico | 2 | 2 | | Città | Berlin | Berlin | | Codice postale | 10178 | 10178 | | Telefono | +49017614284340 | +49017610927312 | #### Grecia | | Approvato | Rifiutato | | ---------------------- | ----------------- | ------------------------ | | Identificativo fiscale | 090000045 | 090000045 | | Data di nascita | 01-01-1960 | 11-11-1970 | | Nome | Test | Test | | Cognome | Person-gr | Test-gr | | Email | customer@email.gr | customer+denied@email.gr | | Via | Kephisias | Baralo | | Numero civico | 37 | 56 | | Codice postale | 151 23 | 123 67 | | Città | Athina | Athina | | Telefono | +306945553624 | +306945553625 | #### Irlanda | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ie | Person-ie | | Email | customer@email.ie | customer+denied@email.ie | | Via | King Street South | King Street South | | Numero civico | 30 | 30 | | Città | Dublino | Dublino | | Codice EIR | D02 C838 | D02 C838 | | Telefono | +353855351400 | +353855351401 | #### Italia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 01-01-1980 | | Nome | Test | Test | | Cognome | Person-it | Person-it | | Email | customer@email.it | customer+denied@email.it | | Codice fiscale | RSSBNC80A41H501B | RSSBNC80A41H501B | | Via | Via Enrico Fermi | Via Enrico Fermi | | Numero civico | 150 | 150 | | Città | Roma | Roma | | Codice postale | 00146 | 00146 | | Telefono | +393339741231 | +393312232389 | #### Paesi Bassi | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Persona-nl | Persona-nl | | Email | customer@email.nl | customer+denied@email.nl | | Via | Osdorpplein | Osdorpplein | | Numero civico | 137 | 137 | | Città | Amsterdam | Amsterdam | | Codice postale | 1068 SR | 1068 SR | | Telefono | +31689124321 | +31632167678 | #### Nuova Zelanda | | Approvato | Rifiutato | | --------------- | ------------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-nz | Person-nz | | Via | Mount Wellington Highway | Mount Wellington Highway | | Numero civico | 286 | 286 | | Codice postale | 6.011 | 6.011 | | Città | Auckland | Wellington | | Telefono | +6427555290 | +642993007712 | | Indirizzo email | customer@email.nz | customer+denied@email.nz | #### Norvegia | | Approvato | Rifiutato | | ---------------- | ------------------- | ------------------------ | | Data di nascita | 01-08-1970 | 01-08-1970 | | Nome | Jane | Test | | Cognome | Test | Person-no | | Email | customer@email.no | customer+denied@email.no | | Numero personale | NO1087000571 | NO1087000148 | | Via | Edvard Munchs Plass | Sæffleberggate | | Numero civico | 1 | 56 | | Città | Oslo | Oslo | | Codice postale | 0194 | 0563 | | Telefono | +4740123456 | +4740123457 | #### Polonia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 05-05-1967 | 05-05-1967 | | Nome | Test | Test | | Cognome | Person-pl | Person-pl | | Via | Ul. Górczewska | Ul. Górczewska | | Numero civico | 124 | 124 | | Codice postale | 01-460 | 01-460 | | Città | Warszawa | Warszawa | | Telefono | +48795222223 | +48795223325 | | Email | customer@email.pl | customer+denied@email.pl | #### Portogallo | | Approvato | Rifiutato | | --------------- | ------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-pt | Person-pt | | Via | Avenida Dom João II | Avenida Dom João II | | Numero civico | 40 | 40 | | Codice postale | 1990-094 | 1990-094 | | Città | Lisboa | Lisboa | | Telefono | +351935556731 | +351915593837 | | Email | customer@email.pt | customer+denied@email.pt | #### Romania | | Approvata | Rifiutato | | ----------------------------------------- | ----------------- | ------------------------ | | Data di nascita | 25-12-1970 | 25-12-1970 | | Nome | di prova | di prova | | Cognome | Person-ro | Person-ro | | Email | customer@email.ro | customer+denied@email.ro | | Via | Drumul Taberei | Drumul Taberei | | Numero civico | 35 | 35 | | Città | București | București | | Settore | Sectorul 6 | Sectorul 6 | | Codice postale | 061357 | 061357 | | Telefono | +40741209876 | +40707127444 | | Numero di identificazione personale (CNP) | 1701225193558 | | #### Spagna | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-es | Person-es | | Email | customer@email.es | customer+denied@email.es | | Via | C. de Atocha | C. de Atocha | | Numero civico | 27 | 27 | | Città | Madrid | Madrid | | Codice postale | 28012 | 28012 | | Telefono | +34672563009 | +34682425101 | #### Svezia | | Approvato | Rifiutato | | --------------- | ----------------------- | ------------------------ | | Data di nascita | 21-03-1941 | 28-10-1941 | | Nome | Alice | Test | | Cognome | Test | Person-se | | Email | customer@email.se | customer+denied@email.se | | Via | Södra Blasieholmshamnen | Karlaplan | | Numero civico | 2 | 3 | | Città | Stockholm | Stockholm | | Codice postale | 11 148 | 11 460 | | Telefono | +46701740615 | +46701740620 | #### Svizzera | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1990 | 01-01-2000 | | Nome | Accettato | Cliente | | Cognome | Person-ch | Person-ch | | Via | Augustinergasse | Bahnhofstrasse | | Numero civico | 2 | 77 | | Codice postale | 4.051 | 8001 | | Città | Basilea | Zürich | | Telefono | +41758680000 | +41758680001 | | Indirizzo email | customer@email.ch | customer+denied@email.ch | #### Regno Unito | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-uk | Person-uk | | Email | customer@email.uk | customer+denied@email.uk | | Via | New Burlington Street | New Burlington Street | | Numero civico | 10 | 10 | | Appartamento | Apt 214 | Apt 214 | | Codice postale | W1S 3BE | W1S 3BE | | Città | Londra | Londra | | Telefono | +447755564318 | +447355505530 | #### Stati Uniti | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 07-10-1970 | 07-10-1970 | | Nome | Test | Test | | Cognome | Person-us | Person-us | | Email | customer@email.us | customer+denied@email.us | | Via | Amsterdam Ave | Amsterdam Ave | | Numero civico | 509 | 509 | | Città | New York | New York | | Stato | New York | New York | | Codice postale | 10024-3941 | 10024-3941 | | Telefono | +13106683312 | +13106354386 | ### Autenticazione a due fattori Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza `999999` per la mancata autenticazione. ### Modalità di rimborso Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso: | Tipo | Valore | | ----------------- | ----------------------------------------------------------------------------------------- | | Addebito diretto | DE11520513735120710131 | | Bonifico bancario | Banca demo | | Carta di credito | - Numero: 4111 1111 1111 1111 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | | Carta di debito | - Numero: 4012 8888 8888 1881 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | ## Optional: Separare l'autorizzazione dall'acquisizione Klarna supporta [l’autorizzazione e l’acquisizione separate](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md). Se si verifica un ritardo tra il pagamento e la consegna dei prodotti al cliente, autorizza prima il pagamento e acquisiscilo in un secondo tempo. Al momento dell’acquisizione, Klarna invia un estratto al cliente e stabilisce le date di scadenza per gli eventuali pagamenti successivi che devono essere effettuati. **Un pagamento Klarna autorizzato deve essere acquisito entro 28 giorni dall’autorizzazione**. Altrimenti, l’autorizzazione viene annullata automaticamente e non potrai più acquisire il pagamento. 1. Indicare a Stripe di eseguire solo l’autorizzazione Per indicare che vuoi separare l’autorizzazione dall’acquisizione, imposta [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) su `manual` quando crei il PaymentIntent. Il parametro indica a Stripe di limitarsi ad autorizzare l’importo sul conto Klarna del cliente. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d capture_method=manual ``` 1. Acquisire i fondi Dopo l’avvenuta autorizzazione, lo [stato](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status) PaymentIntent passa a `requires_capture`. Per acquisire i fondi autorizzati, crea una richiesta di [acquisizione](https://docs.stripe.com/api/payment_intents/capture.md) di PaymentIntent. L’importo totale autorizzato viene acquisito per impostazione predefinita, cioè non puoi acquisire un importo superiore. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/capture \ -u "<>:" \ -d amount_to_capture=750 ``` 1. (Facoltativo) Annullare l’autorizzazione Klarna confronta tutti i pagamenti autorizzati con il potere d’acquisto totale del cliente in Klarna. Per questo motivo devi annullare attivamente tutti i pagamenti autorizzati degli ordini che non puoi evadere (ad esempio, i prodotti non possono essere spediti) non appena il dato risulta evidente. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/cancel \ -u "<>:" \ -d cancellation_reason=abandoned ``` ## Optional: Gestire gli eventi successivi al pagamento Stripe invia un evento [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) quando il pagamento viene completato. Utilizza la Dashboard, un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) personalizzato o una soluzione partner per ricevere questi eventi ed eseguire azioni come l’invio della conferma di un ordine al cliente, la registrazione della vendita in un database o l’avvio del flusso di lavoro per una spedizione. Ascolta questi eventi invece di attendere un callback dal client. Sul client, il cliente potrebbe chiudere la finestra del browser o uscire dall’app prima dell’esecuzione del callback e i client malintenzionati potrebbero manipolare la risposta. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente anche di accettare metodi di pagamento diversi in futuro. Ulteriori informazioni sulle [differenze tra tutti i metodi di pagamento supportati](https://stripe.com/payments/payment-methods-guide). - **Gestisci gli eventi manualmente nella dashboard** Utilizza la dashboard per [visualizzare i pagamenti di test nella dashboard](https://dashboard.stripe.com/test/payments), inviare le ricevute tramite email, gestire i bonifici o ritentare i pagamenti non riusciti. - **Crea un webhook personalizzato** [Crea un gestore webhook personalizzato](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) per rilevare gli eventi e creare flussi di pagamento asincroni personalizzati. Esegui il test e il debug in locale dell’integrazione webhook con la CLI di Stripe. - **Integra un’app preimpostata** Gestisci eventi comuni dell’attività, come l’[automazione](https://stripe.partners/?f_category=automation), il [marketing e i saldi](https://stripe.partners/?f_category=marketing-and-sales), integrando una richiesta di registrazione del partner. ## Optional: Personalizzare la pagina di pagamento Klarna - **Precompilazione del modulo Klarna** Quando il cliente sceglie di pagare Klarna con un’opzione di pagamento posticipato, ad esempio un pagamento a rate e un finanziamento, Klarna raccoglie informazioni sufficienti per la valutazione del rischio e l’approvazione. Il tipo di informazioni dipende dal Paese del cliente. Per la maggior parte dei Paesi europei, si tratta dei dettagli di fatturazione completi e della data di nascita. Puoi specificare queste informazioni attraverso l’API e il modulo verrà precompilato quando il cliente arriverà sulla pagina. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode "return_url=https://example.com/checkout/complete" \ -d "payment_method_data[type]=klarna" \ --data-urlencode "payment_method_data[billing_details][email]=customer@example.com" \ -d "payment_method_data[billing_details][name]=Jenny Rosen" \ --data-urlencode "payment_method_data[billing_details][phone]=+4915142321555" \ -d "payment_method_data[billing_details][address][line1]=Alexanderplatz 1" \ -d "payment_method_data[billing_details][address][city]=Berlin" \ -d "payment_method_data[billing_details][address][postal_code]=10551" \ -d "payment_method_data[billing_details][address][country]=DE" \ -d "payment_method_data[klarna][dob][day]=10" \ -d "payment_method_data[klarna][dob][month]=10" \ -d "payment_method_data[klarna][dob][year]=1990" ``` ![Screenshot di una pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall'API e personalizzata in modo da visualizzarla in inglese](https://b.stripecdn.com/docs-statics-srv/assets/klarna-kpp-prefilled-customized.75932cc9aa3223960aa2fcf769c1ce62.png) Pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall’API e personalizzata in modo da visualizzarla in inglese per un cliente in Germania ## Optional: Aggiungere voci riga al PaymentIntent > #### Voci riga unificate con Klarna > > Per ottimizzare i tassi di approvazione durante l’integrazione con Klarna, includi dati `line_items` per rappresentare il contenuto del carrello di un acquirente. Per l’accesso anticipato, consulta le [voci riga di Payments](https://docs.stripe.com/payments/payment-line-items.md). ## Pagamenti non riusciti Klarna decide se accettare o rifiutare una transazione in base a diversi fattori, ad esempio da quanto tempo l’acquirente utilizza Klarna, l’importo in sospeso che il cliente deve rimborsare o il valore dell’ordine corrente. Quando il cliente seleziona un metodo di pagamento a rate, Klarna esegue una valutazione del rischio prima di accettare la transazione. A seconda del risultato della valutazione, dell’importo della transazione o del debito residuo del cliente, Klarna potrebbe rifiutare la transazione. Pertanto ti consigliamo di inserire altre opzioni di pagamento nel flusso di completamento della transazione, come ad esempio `card`. In questi casi, il [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) diventa automaticamente a `requires_payment_method`. I clienti devono completare il pagamento entro 48 ore dal reindirizzamento al sito Klarna. Se non viene intrapresa alcuna azione dopo 48 ore, l’oggetto [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) passa automaticamente da `requires_action` a `requires_payment_method`. In questi casi, invita il cliente a riprovare con una diversa opzione di pagamento presente nel tuo flusso di completamento della transazione. ### Limiti di frequenza di Klarna Le richieste API a Klarna sono soggette a limiti di frequenza aggiuntivi oltre ai [limiti di frequenza generali dell’API di Stripe](https://docs.stripe.com/rate-limits.md). Questi limiti possono variare a seconda della forma delle richieste API effettuate. In generale, se si effettuano più di 50 richieste al secondo, è possibile che venga applicato un limite di frequenza sotto forma di risposte con codice di stato HTTP `400` o `402`. Se temi che l’utilizzo possa raggiungere questi livelli, contattaci utilizzando il modulo di [assistenza Stripe](https://support.stripe.com), poiché Klarna potrebbe essere in grado di aumentare questi limiti caso per caso. ### Messaggi di errore In genere i pagamenti Klarna non riusciti restituiscono uno dei seguenti codici di errore. Questi codici vengono visualizzati nell’oggetto API [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error). > Prima della versione API `2023-08-16`, tutti gli errori di Klarna venivano segnalati come [payment_intent_authentication_failure](https://docs.stripe.com/error-codes.md#payment_intent_authentication_failure). Verifica che la tua versione dell’API sia aggiornata per visualizzare gli errori dettagliati elencati di seguito. | Codice di errore | Spiegazione | | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | [payment_method_customer_decline](https://docs.stripe.com/error-codes.md#payment-method-customer-decline) | Il cliente ha annullato il pagamento sulla pagina di Klarna | | [payment_method_provider_decline](https://docs.stripe.com/error-codes.md#payment-method-provider-decline) | Klarna ha rifiutato il pagamento del cliente | | [payment_intent_payment_attempt_expired](https://docs.stripe.com/error-codes.md#payment-intent-payment-attempt-expired) | Il cliente non ha mai completato il pagamento sulla pagina di Klarna e la sessione di pagamento è scaduta | | [payment_method_not_available](https://docs.stripe.com/error-codes.md#payment-method-not-available) | Si è verificato un errore imprevisto durante il tentativo di utilizzare Klarna | # API diretta > This is a API diretta for when payment-ui is direct-api. View the full page at https://docs.stripe.com/payments/klarna/accept-a-payment?payment-ui=direct-api. ## Elencare manualmente i metodi di pagamento Consigliamo di utilizzare [metodi di pagamento dinamici](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md), in cui Stripe gestisce la logica per mostrare dinamicamente i metodi di pagamento idonei più confacenti a ciascun cliente, per massimizzare la conversione. Se scegli di [elencare manualmente i metodi di pagamento](https://docs.stripe.com/payments/payment-methods/integration-options.md#listing-payment-methods-manually), specifica `klarna` nell’elenco [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) quando crei un [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md). ### Crea un PaymentIntent Per massimizzare i tassi di accettazione e ridurre le contestazioni, specifica i seguenti parametri quando [crei un PaymentIntent](https://docs.stripe.com/api/payment_intents/create.md) per i pagamenti Klarna: - [shipping](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-shipping): assicurati che questi campi siano definiti e non vuoti: `name`, `address.line1`, `city`, `country` e `postal_code`. - [amount_details.line_items](https://docs.stripe.com/payments/payment-line-items.md) - [payment_method_data.billing_details](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_data-billing_details): assicurati che questi campi siano definiti e non vuoti: `name`, `address.line1`, `city`, `country` e `postal_code`. > Se imposti il parametro [setup_future_usage](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-setup_future_usage), il pagamento non viene considerato un pagamento una tantum. Ciò influisce sulle [opzioni di pagamento disponibili](https://docs.stripe.com/payments/klarna.md#payment-options) e impedisce a [Payment Method Messaging Element](https://docs.stripe.com/elements/payment-method-messaging.md) e a [Payment Element](https://docs.stripe.com/payments/payment-element.md) di mostrare i piani di pagamento a cui il cliente ha diritto. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[0]=klarna" \ -d amount=1099 \ -d currency=eur \ -d "amount_details[line_items][0][product_name]=Your product name" \ -d "amount_details[line_items][0][unit_cost]=1099" \ -d "amount_details[line_items][0][quantity]=1" \ -d "shipping[address][city]=Brothers" \ -d "shipping[address][country]=US" \ -d "shipping[address][line1]=27 Fredrick Ave" \ -d "shipping[address][postal_code]=97712" \ -d "shipping[address][state]=OR" \ -d "payment_method_data[billing_details][address][city]=Brothers" \ -d "payment_method_data[billing_details][address][country]=US" \ -d "payment_method_data[billing_details][address][line1]=27 Fredrick Ave" \ -d "payment_method_data[billing_details][address][postal_code]=97712" \ -d "payment_method_data[billing_details][address][state]=OR" \ --data-urlencode "payment_method_data[billing_details][email]=jenny.rosen@example.com" \ -d "payment_method_data[billing_details][name]=Jenny Rosen" ``` ### Recuperare la chiave privata client L’oggetto PaymentIntent contiene una *chiave privata client* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)), che il lato client usa per completare la procedura di pagamento in modo sicuro. Per specificare la chiave privata sul lato client, puoi utilizzare approcci diversi. #### Applicazione a pagina singola Recupera la chiave privata client dall’endpoint sul server utilizzando la funzione `fetch`del browser. Questo approccio è più adatto quando il lato client è un’applicazione con un’unica pagina, in particolare creata con un framework front-end moderno come React. Crea l’endpoint server che invia la chiave privata client: #### Ruby ```ruby get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end ``` Quindi recupera la chiave privata client con JavaScript sul lato client: ```javascript (async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })(); ``` #### Rendering lato server Trasmetti la chiave privata client al client dal server. Questo approccio è più adatto se l’applicazione genera contenuti statici sul server prima di inviarli al browser. Aggiungi la [client_secret](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) nel modulo di pagamento. Nel codice lato server, recupera la chiave privata client da PaymentIntent: #### Ruby ```erb
``` ```ruby get '/checkout' do @intent = # ... Fetch or create the PaymentIntent erb :checkout end ``` ## Invia il pagamento a Stripe. In questo passaggio, completi i pagamenti Klarna sul client con [Stripe.js](https://docs.stripe.com/payments/elements.md). ### Configurare Stripe.js Quando un cliente fa clic per pagare con Klarna, ti consigliamo di utilizzare Stripe.js per inviare il pagamento a Stripe. Stripe.js è la nostra libreria JavaScript di base per creare i flussi di pagamento. Gestisce automaticamente le operazioni complesse, come il reindirizzamento descritto di seguito. Inoltre ti consente di estendere facilmente la tua integrazione ad altre modalità di pagamento in futuro. Per includere lo script di Stripe.js nella tua pagina di pagamenti, aggiungilo nell’intestazione del file HTML. ```html Checkout ``` Crea un’istanza di Stripe.js con il seguente JavaScript nella pagina di pagamento: ```javascript // Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe('<>'); ``` Anziché inviare tutto l’oggetto PaymentIntent al client, utilizza la [chiave privata client](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) (diversa dalle chiavi API che autenticano le richieste API di Stripe). Assicurati di gestire con attenzione la chiave privata client in quanto può completare l’addebito. Non devi registrarla, inserirla negli URL né mostrarla a nessuno se non al cliente. Usa [stripe.confirmKlarnaPayment](https://docs.stripe.com/js/payment_intents/confirm_klarna_payment) per gestire il reindirizzamento dalla tua pagina e completare il pagamento. Aggiungi un [return_url](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-return_url) a questa funzione per indicare dove Stripe deve reindirizzare l’utente dopo che ha completato il pagamento sul sito web o nell’applicazione mobile Klarna. Nella pagina dei pagamenti di Klarna, il cliente esegue una selezione tra le opzioni di pagamento disponibili nel proprio mercato. Per le disponibilità nei diversi mercati, consulta la tabella nella [pagina della panoramica](https://docs.stripe.com/payments/klarna.md#payment-options). Non è possibile limitare o preselezionare le opzioni di pagamento dalla pagina dei pagamenti di Klarna: il fatto che sia il consumatore a scegliere aumenta le possibilità che effettui le transazioni con la tua attività. ```javascript // Redirects away from the client const {error} = await stripe.confirmKlarnaPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}',{ return_url: 'https://example.com/checkout/complete', } ); if (error) { // Inform the customer that there was an error. } ``` Quando il cliente invia un pagamento, Stripe lo reindirizza al `return_url` e include i seguenti parametri di ricerca dell’URL. La pagina di ritorno può utilizzarli per ottenere lo stato del PaymentIntent in modo da poter mostrare lo stato del pagamento al cliente. Quando specifichi il parametro `return_url`, puoi anche aggiungere i tuoi parametri di ricerca da utilizzare nella pagina di ritorno. | Parametro | Descrizione | | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `payment_intent` | Identificativo univoco per il `PaymentIntent` | | `payment_intent_client_secret` | La [chiave privata client](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) dell’oggetto `PaymentIntent`. Per le integrazioni per gli abbonamenti, questo client_secret è esposto anche nell’oggetto `Invoice` tramite [`confirmation_secret`](https://docs.stripe.com/api/invoices/object.md#invoice_object-confirmation_secret) | Quando il cliente viene reindirizzato al tuo sito, puoi utilizzare il `payment_intent_client_secret` per eseguire una query per il PaymentIntent e mostrare al cliente lo stato della transazione. I dettagli sull’opzione di pagamento Klarna selezionata dal cliente in `charge` sono disponibili nella proprietà [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-klarna). I valori consentiti sono quattro: `pay_later`, `pay_with_financing`, `pay_now` e `pay_in_installments`. Per ulteriori informazioni su queste opzioni, consulta la [pagina della panoramica di Klarna](https://docs.stripe.com/payments/klarna.md#payment-options). Puoi anche trovare le impostazioni locali utilizzate per localizzare la pagina dei pagamenti di Klarna nella proprietà [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-klarna). ```json { "charges": { "data": [ {"payment_method_details": { "klarna": { "payment_method_category": "pay_in_installments", "preferred_locale": "en-US" }, "type": "klarna" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU", "created": 1445277809, "currency": "eur", "livemode": true, "statement_descriptor": null, "status": "succeeded", "type": "klarna", "usage": "single_use" } ], "object": "list", "has_more": false, "url": "/v1/charges?payment_intent=pi_1G1sgdKi6xqXeNtkldRRE6HT" }, "payment_method_options": { "klarna": {} }, "payment_method_types": [ "klarna" ], "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099, "client_secret": "pi_1G1sgdKi6xqXeNtkldRRE6HT_secret_h9B56ObhTN72fQiBAuzcVPb2E", "confirmation_method": "automatic", "created": 1579259303, "currency": "eur", "livemode": true, "next_action": null } ``` ## Esegui il test dell’integrazione > Klarna utilizza i cookie per il tracciamento delle sessioni. Per testare diverse posizioni dei clienti, esci dalla sandbox Klarna dalla sessione precedente e utilizza i trigger pertinenti. Di seguito abbiamo selezionato dati di test per i Paesi attualmente supportati. In una sandbox, Klarna approva o rifiuta una transazione in base all’indirizzo email fornito. #### Australia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 03-05-1994 | | Nome | Test | John | | Cognome | Person-au | snow | | Via | Wharf St | Silverwater Rd | | Numero civico | 4 | 1-5 | | Codice postale | 4877 | 2.128 | | Città | Port Douglas | Silverwater | | Area geografica | QLD | NSW | | Telefono | +61473752244 | +61473763254 | | Email | customer@email.au | customer+denied@email.au | #### Austria | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-at | Person-at | | Email | customer@email.at | customer+denied@email.at | | Via | Mariahilfer Straße | Mariahilfer Straße | | Numero civico | 47 | 47 | | Città | Vienna | Vienna | | Codice postale | 1060 | 1060 | | Telefono | +4306762600456 | +4306762600745 | #### Belgio | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-be | Person-be | | Email | customer@email.be | customer+denied@email.be | | Via | Grote Markt | Grote Markt | | Numero civico | 1 | 1 | | Città | Brussel | Brussel | | Codice postale | 1000 | 1000 | | Telefono | +32485121291 | +32485212123 | #### Canada | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ca | Person-ca | | Via | 2693 Byron Rd | 2693 Byron Rd | | Codice postale | V7H 1L9 | V7H 1L9 | | Città | North Vancouver | North Vancouver | | Area geografica | BC | BC | | Telefono | +15197438620 | +15197308624 | | Email | customer@email.ca | customer+denied@email.ca | #### Cechia | | Approvato | Rifiutato | | --------------- | ------------------ | ------------------------ | | Data di nascita | 01-01-1970 | 27-06-1992 | | Nome | Test | Test | | Cognome | Person-cz | Person-cz | | Email | customer@email.cz | customer+denied@email.cz | | Via | Zazvorkova 1480/11 | Zázvorkova 1480/11 | | Codice postale | 155 00 | 155 00 | | Città | Praha | PRAHA 13 | | Telefono | +420771613715 | +420771623691 | #### Danimarca | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-dk | Person-dk | | Email | customer@email.dk | customer+denied@email.dk | | Via | Dantes Plads | Nygårdsvej | | Numero civico | 7 | 65 | | Città | København Ø | København Ø | | Codice postale | 1556 | 2100 | | Telefono | +4542555628 | +4552555348 | #### Finlandia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1999 | 01-01-1999 | | Nome | Test | Person FI | | Cognome | Person-fi | Test | | Email | customer@email.fi | customer+denied@email.fi | | Via | Mannerheimintie | Mannerheimintie | | Numero civico | 34 | 34 | | Città | Helsinki | Helsinki | | Codice postale | 00100 | 00100 | | Telefono | +358401234567 | +358401234568 | #### Francia | | Approvato | Rifiutato | | ---------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1990 | 10-07-1990 | | Luogo di nascita | Parigi | Parigi | | Nome | Test | Test | | Cognome | Person-fr | Person-fr | | Email | customer@email.fr | customer+denied@email.fr | | Via | rue La Fayette | rue La Fayette | | Numero civico | 33 | 33 | | Città | Parigi | Parigi | | Codice postale | 75009 | 75009 | | Telefono | +33689854321 | +33687984322 | #### Germania | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Mock | Test | | Cognome | Mock | Person-de | | Email | customer@email.de | customer+denied@email.de | | Via | Neue Schönhauser Str. | Neue Schönhauser Str. | | Numero civico | 2 | 2 | | Città | Berlin | Berlin | | Codice postale | 10178 | 10178 | | Telefono | +49017614284340 | +49017610927312 | #### Grecia | | Approvato | Rifiutato | | ---------------------- | ----------------- | ------------------------ | | Identificativo fiscale | 090000045 | 090000045 | | Data di nascita | 01-01-1960 | 11-11-1970 | | Nome | Test | Test | | Cognome | Person-gr | Test-gr | | Email | customer@email.gr | customer+denied@email.gr | | Via | Kephisias | Baralo | | Numero civico | 37 | 56 | | Codice postale | 151 23 | 123 67 | | Città | Athina | Athina | | Telefono | +306945553624 | +306945553625 | #### Irlanda | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-ie | Person-ie | | Email | customer@email.ie | customer+denied@email.ie | | Via | King Street South | King Street South | | Numero civico | 30 | 30 | | Città | Dublino | Dublino | | Codice EIR | D02 C838 | D02 C838 | | Telefono | +353855351400 | +353855351401 | #### Italia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1980 | 01-01-1980 | | Nome | Test | Test | | Cognome | Person-it | Person-it | | Email | customer@email.it | customer+denied@email.it | | Codice fiscale | RSSBNC80A41H501B | RSSBNC80A41H501B | | Via | Via Enrico Fermi | Via Enrico Fermi | | Numero civico | 150 | 150 | | Città | Roma | Roma | | Codice postale | 00146 | 00146 | | Telefono | +393339741231 | +393312232389 | #### Paesi Bassi | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Persona-nl | Persona-nl | | Email | customer@email.nl | customer+denied@email.nl | | Via | Osdorpplein | Osdorpplein | | Numero civico | 137 | 137 | | Città | Amsterdam | Amsterdam | | Codice postale | 1068 SR | 1068 SR | | Telefono | +31689124321 | +31632167678 | #### Nuova Zelanda | | Approvato | Rifiutato | | --------------- | ------------------------ | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-nz | Person-nz | | Via | Mount Wellington Highway | Mount Wellington Highway | | Numero civico | 286 | 286 | | Codice postale | 6.011 | 6.011 | | Città | Auckland | Wellington | | Telefono | +6427555290 | +642993007712 | | Indirizzo email | customer@email.nz | customer+denied@email.nz | #### Norvegia | | Approvato | Rifiutato | | ---------------- | ------------------- | ------------------------ | | Data di nascita | 01-08-1970 | 01-08-1970 | | Nome | Jane | Test | | Cognome | Test | Person-no | | Email | customer@email.no | customer+denied@email.no | | Numero personale | NO1087000571 | NO1087000148 | | Via | Edvard Munchs Plass | Sæffleberggate | | Numero civico | 1 | 56 | | Città | Oslo | Oslo | | Codice postale | 0194 | 0563 | | Telefono | +4740123456 | +4740123457 | #### Polonia | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 05-05-1967 | 05-05-1967 | | Nome | Test | Test | | Cognome | Person-pl | Person-pl | | Via | Ul. Górczewska | Ul. Górczewska | | Numero civico | 124 | 124 | | Codice postale | 01-460 | 01-460 | | Città | Warszawa | Warszawa | | Telefono | +48795222223 | +48795223325 | | Email | customer@email.pl | customer+denied@email.pl | #### Portogallo | | Approvato | Rifiutato | | --------------- | ------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-pt | Person-pt | | Via | Avenida Dom João II | Avenida Dom João II | | Numero civico | 40 | 40 | | Codice postale | 1990-094 | 1990-094 | | Città | Lisboa | Lisboa | | Telefono | +351935556731 | +351915593837 | | Email | customer@email.pt | customer+denied@email.pt | #### Romania | | Approvata | Rifiutato | | ----------------------------------------- | ----------------- | ------------------------ | | Data di nascita | 25-12-1970 | 25-12-1970 | | Nome | di prova | di prova | | Cognome | Person-ro | Person-ro | | Email | customer@email.ro | customer+denied@email.ro | | Via | Drumul Taberei | Drumul Taberei | | Numero civico | 35 | 35 | | Città | București | București | | Settore | Sectorul 6 | Sectorul 6 | | Codice postale | 061357 | 061357 | | Telefono | +40741209876 | +40707127444 | | Numero di identificazione personale (CNP) | 1701225193558 | | #### Spagna | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | DNI/NIE | 99999999R | 99999999R | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-es | Person-es | | Email | customer@email.es | customer+denied@email.es | | Via | C. de Atocha | C. de Atocha | | Numero civico | 27 | 27 | | Città | Madrid | Madrid | | Codice postale | 28012 | 28012 | | Telefono | +34672563009 | +34682425101 | #### Svezia | | Approvato | Rifiutato | | --------------- | ----------------------- | ------------------------ | | Data di nascita | 21-03-1941 | 28-10-1941 | | Nome | Alice | Test | | Cognome | Test | Person-se | | Email | customer@email.se | customer+denied@email.se | | Via | Södra Blasieholmshamnen | Karlaplan | | Numero civico | 2 | 3 | | Città | Stockholm | Stockholm | | Codice postale | 11 148 | 11 460 | | Telefono | +46701740615 | +46701740620 | #### Svizzera | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 01-01-1990 | 01-01-2000 | | Nome | Accettato | Cliente | | Cognome | Person-ch | Person-ch | | Via | Augustinergasse | Bahnhofstrasse | | Numero civico | 2 | 77 | | Codice postale | 4.051 | 8001 | | Città | Basilea | Zürich | | Telefono | +41758680000 | +41758680001 | | Indirizzo email | customer@email.ch | customer+denied@email.ch | #### Regno Unito | | Approvato | Rifiutato | | --------------- | --------------------- | ------------------------ | | Data di nascita | 10-07-1970 | 10-07-1970 | | Nome | Test | Test | | Cognome | Person-uk | Person-uk | | Email | customer@email.uk | customer+denied@email.uk | | Via | New Burlington Street | New Burlington Street | | Numero civico | 10 | 10 | | Appartamento | Apt 214 | Apt 214 | | Codice postale | W1S 3BE | W1S 3BE | | Città | Londra | Londra | | Telefono | +447755564318 | +447355505530 | #### Stati Uniti | | Approvato | Rifiutato | | --------------- | ----------------- | ------------------------ | | Data di nascita | 07-10-1970 | 07-10-1970 | | Nome | Test | Test | | Cognome | Person-us | Person-us | | Email | customer@email.us | customer+denied@email.us | | Via | Amsterdam Ave | Amsterdam Ave | | Numero civico | 509 | 509 | | Città | New York | New York | | Stato | New York | New York | | Codice postale | 10024-3941 | 10024-3941 | | Telefono | +13106683312 | +13106354386 | Per i test in produzione, puoi utilizzare un importo di `3500`nella tua valuta locale per testare tutte le opzioni di pagamento di Klarna oltre ai finanziamenti. Ad esempio, se vuoi testare il pagamento in tre rate in Italia, puoi utilizzare una transazione di 35,00 EUR. ### Autenticazione a due fattori Qualsiasi numero a sei cifre è un codice valido per l’autenticazione a due fattori. Utilizza `999999` per la mancata autenticazione. ### Modalità di rimborso Nel flusso di Klarna in modalità di test, puoi utilizzare i seguenti valori di test per provare i diversi tipi di rimborso: | Tipo | Valore | | ----------------- | ----------------------------------------------------------------------------------------- | | Addebito diretto | DE11520513735120710131 | | Bonifico bancario | Banca demo | | Carta di credito | - Numero: 4111 1111 1111 1111 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | | Carta di debito | - Numero: 4012 8888 8888 1881 - CVV: 123 - Scadenza: qualsiasi data valida nel futuro | ## Pagamenti non riusciti Klarna decide se accettare o rifiutare una transazione in base a diversi fattori, ad esempio da quanto tempo l’acquirente utilizza Klarna, l’importo in sospeso che il cliente deve rimborsare o il valore dell’ordine corrente. Quando il cliente seleziona un metodo di pagamento a rate, Klarna esegue una valutazione del rischio prima di accettare la transazione. A seconda del risultato della valutazione, dell’importo della transazione o del debito residuo del cliente, Klarna potrebbe rifiutare la transazione. Pertanto ti consigliamo di inserire altre opzioni di pagamento nel flusso di completamento della transazione, come ad esempio `card`. In questi casi, il [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) diventa automaticamente a `requires_payment_method`. I clienti devono completare il pagamento entro 48 ore dal reindirizzamento al sito Klarna. Se non viene intrapresa alcuna azione dopo 48 ore, l’oggetto [PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md) viene scollegato e lo stato dell’oggetto [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) passa automaticamente da `requires_action` a `requires_payment_method`. In questi casi, invita il cliente a riprovare con una diversa opzione di pagamento presente nel tuo flusso di completamento della transazione. ### Limiti di frequenza di Klarna Le richieste API a Klarna sono soggette a limiti di frequenza aggiuntivi oltre ai [limiti di frequenza generali dell’API di Stripe](https://docs.stripe.com/rate-limits.md). Questi limiti possono variare a seconda della forma delle richieste API effettuate. In generale, se si effettuano più di 50 richieste al secondo, è possibile che venga applicato un limite di frequenza sotto forma di risposte con codice di stato HTTP `400` o `402`. Se temi che l’utilizzo possa raggiungere questi livelli, contattaci utilizzando il modulo di [assistenza Stripe](https://support.stripe.com), poiché Klarna potrebbe essere in grado di aumentare questi limiti caso per caso. ### Messaggi di errore In genere i pagamenti Klarna non riusciti restituiscono uno dei seguenti codici di errore. Questi codici vengono visualizzati nell’oggetto API [last_payment_error](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-last_payment_error). > Prima della versione API `2023-08-16`, tutti gli errori di Klarna venivano segnalati come [payment_intent_authentication_failure](https://docs.stripe.com/error-codes.md#payment_intent_authentication_failure). Verifica che la tua versione dell’API sia aggiornata per visualizzare gli errori dettagliati elencati di seguito. | Codice di errore | Spiegazione | | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | | [payment_method_customer_decline](https://docs.stripe.com/error-codes.md#payment-method-customer-decline) | Il cliente ha annullato il pagamento sulla pagina di Klarna | | [payment_method_provider_decline](https://docs.stripe.com/error-codes.md#payment-method-provider-decline) | Klarna ha rifiutato il pagamento del cliente | | [payment_intent_payment_attempt_expired](https://docs.stripe.com/error-codes.md#payment-intent-payment-attempt-expired) | Il cliente non ha mai completato il pagamento sulla pagina di Klarna e la sessione di pagamento è scaduta | | [payment_method_not_available](https://docs.stripe.com/error-codes.md#payment-method-not-available) | Si è verificato un errore imprevisto durante il tentativo di utilizzare Klarna | ## Personalizzazioni facoltative Puoi implementare facoltativamente diverse personalizzazioni per i flussi di pagamento Klarna (come la separazione dell’autorizzazione e dell’acquisizione dei fondi) e le interazioni con i clienti (come la gestione dei reindirizzamenti). ### Separa l’autorizzazione dall’acquisizione Klarna supporta [l’autorizzazione e l’acquisizione separate](https://docs.stripe.com/payments/place-a-hold-on-a-payment-method.md). Se si verifica un ritardo tra il pagamento e la consegna dei prodotti al cliente, autorizza prima il pagamento e acquisiscilo in un secondo tempo. Al momento dell’acquisizione, Klarna invia un estratto al cliente e stabilisce le date di scadenza per gli eventuali pagamenti successivi che devono essere effettuati. **Un pagamento Klarna autorizzato deve essere acquisito entro 28 giorni dall’autorizzazione**. Altrimenti, l’autorizzazione viene annullata automaticamente e non potrai più acquisire il pagamento. 1. Indicare a Stripe di eseguire solo l’autorizzazione Per indicare che vuoi separare l’autorizzazione dall’acquisizione, imposta [capture_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) su `manual` quando crei il PaymentIntent. Il parametro indica a Stripe di limitarsi ad autorizzare l’importo sul conto Klarna del cliente. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d capture_method=manual ``` 1. Acquisire i fondi Dopo l’avvenuta autorizzazione, lo [stato](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-status) PaymentIntent passa a `requires_capture`. Per acquisire i fondi autorizzati, crea una richiesta di [acquisizione](https://docs.stripe.com/api/payment_intents/capture.md) di PaymentIntent. L’importo totale autorizzato viene acquisito per impostazione predefinita, cioè non puoi acquisire un importo superiore. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/capture \ -u "<>:" \ -d amount_to_capture=750 ``` 1. (Facoltativo) Annullare l’autorizzazione Klarna confronta tutti i pagamenti autorizzati con il potere d’acquisto totale del cliente in Klarna. Per questo motivo devi annullare attivamente tutti i pagamenti autorizzati degli ordini che non puoi evadere (ad esempio, i prodotti non possono essere spediti) non appena il dato risulta evidente. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/cancel \ -u "<>:" \ -d cancellation_reason=abandoned ``` ### Gestisci manualmente il reindirizzamento di Klarna Per gestire i reindirizzamenti e i pagamenti Klarna lato client con `confirmKlarnaPayment`, consigliamo di utilizzare Stripe.js. Utilizzando Stripe.js puoi estendere l’integrazione ad altri metodi di pagamento. Tuttavia, puoi anche reindirizzare manualmente i clienti al tuo server seguendo questi passaggi: - Crea e conferma un [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) di tipo `klarna`. Devi specificare l’URL di reindirizzamento successivo al pagamento per il cliente nel campo `return_url`. Quando specifichi i parametri di ricerca in questo URL, questi verranno automaticamente inclusi nell’URL di reindirizzamento finale. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode "return_url=https://example.com/checkout/complete" \ -d "payment_method_data[type]=klarna" ``` - Il `PaymentIntent` creato ha lo stato `requires_action` e il tipo per `next_action` è `redirect_to_url`. #### JSON ```json {"status": "requires_action", "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099, "client_secret": "pi_1G1sgdKi6xqXeNtkldRRE6HT_secret_h9B56ObhTN72fQiBAuzcVPb2E", "confirmation_method": "automatic", "created": 1579259303, "currency": "eur", "livemode": true, "charges": { "data": [], "object": "list", "has_more": false, "url": "/v1/charges?payment_intent=pi_1G1sgdKi6xqXeNtkldRRE6HT" }, "payment_method_options": { "klarna": {} }, "payment_method_types": [ "klarna" ] } ``` - Reindirizza il cliente all’URL specificato nella proprietà `next_action.redirect_to_url.url` . Il codice esemplificativo indicato qui è approssimativo. La modalità di reindirizzamento potrebbe essere diversa nel tuo web framework. #### Ruby ```ruby if payment_intent.status == 'requires_action' && payment_intent.next_action.type == 'redirect_to_url' url = payment_intent.next_action.redirect_to_url.url redirect(url) end ``` Al termine della procedura di pagamento, il cliente viene indirizzato al `return_url` configurato nel passaggio 1. Sono inclusi i parametri di ricerca dell’URL `payment_intent` e `payment_intent_client_secret`. Se `return_url` includeva già parametri di ricerca, vengono conservati anche questi. Ti consigliamo di [utilizzare i webhook](https://docs.stripe.com/payments/payment-intents/verifying-status.md#webhooks) per confermare lo stato di un pagamento. ### Gestisci gli eventi successivi al pagamento Stripe invia un evento [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) quando il pagamento viene completato. Utilizza la Dashboard, un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) personalizzato o una soluzione partner per ricevere questi eventi ed eseguire azioni come l’invio della conferma di un ordine al cliente, la registrazione della vendita in un database o l’avvio del flusso di lavoro per una spedizione. Ascolta questi eventi invece di attendere un callback dal client. Sul client, il cliente potrebbe chiudere la finestra del browser o uscire dall’app prima dell’esecuzione del callback e i client malintenzionati potrebbero manipolare la risposta. La configurazione dell’integrazione per l’ascolto di eventi asincroni ti consente anche di accettare metodi di pagamento diversi in futuro. Ulteriori informazioni sulle [differenze tra tutti i metodi di pagamento supportati](https://stripe.com/payments/payment-methods-guide). - **Gestisci gli eventi manualmente nella dashboard** Utilizza la dashboard per [visualizzare i pagamenti di test nella dashboard](https://dashboard.stripe.com/test/payments), inviare le ricevute tramite email, gestire i bonifici o ritentare i pagamenti non riusciti. - **Crea un webhook personalizzato** [Crea un gestore webhook personalizzato](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) per rilevare gli eventi e creare flussi di pagamento asincroni personalizzati. Esegui il test e il debug in locale dell’integrazione webhook con la CLI di Stripe. - **Integra un’app preimpostata** Gestisci eventi comuni dell’attività, come l’[automazione](https://stripe.partners/?f_category=automation), il [marketing e i saldi](https://stripe.partners/?f_category=marketing-and-sales), integrando una richiesta di registrazione del partner. ### Personalizzazione della pagina di pagamento Klarna - **Precompilazione del modulo Klarna** Quando il cliente sceglie di pagare Klarna con un’opzione di pagamento posticipato, ad esempio un pagamento a rate e un finanziamento, Klarna raccoglie informazioni sufficienti per la valutazione del rischio e l’approvazione. Il tipo di informazioni dipende dal Paese del cliente. Per la maggior parte dei Paesi europei, si tratta dei dettagli di fatturazione completi e della data di nascita. Puoi specificare queste informazioni attraverso l’API e il modulo verrà precompilato quando il cliente arriverà sulla pagina. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=klarna" \ -d amount=1099 \ -d currency=eur \ -d confirm=true \ --data-urlencode "return_url=https://example.com/checkout/complete" \ -d "payment_method_data[type]=klarna" \ --data-urlencode "payment_method_data[billing_details][email]=customer@example.com" \ -d "payment_method_data[billing_details][name]=Jenny Rosen" \ --data-urlencode "payment_method_data[billing_details][phone]=+4915142321555" \ -d "payment_method_data[billing_details][address][line1]=Alexanderplatz 1" \ -d "payment_method_data[billing_details][address][city]=Berlin" \ -d "payment_method_data[billing_details][address][postal_code]=10551" \ -d "payment_method_data[billing_details][address][country]=DE" \ -d "payment_method_data[klarna][dob][day]=10" \ -d "payment_method_data[klarna][dob][month]=10" \ -d "payment_method_data[klarna][dob][year]=1990" ``` ![Screenshot di una pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall'API e personalizzata in modo da visualizzarla in inglese](https://b.stripecdn.com/docs-statics-srv/assets/klarna-kpp-prefilled-customized.75932cc9aa3223960aa2fcf769c1ce62.png) Pagina di pagamento di Klarna precompilata con i dettagli di fatturazione recuperati dall’API e personalizzata in modo da visualizzarla in inglese per un cliente in Germania ### Aggiungi gli articoli al PaymentIntent > #### Voci riga unificate con Klarna > > Per ottimizzare i tassi di approvazione durante l’integrazione con Klarna, includi dati `line_items` per rappresentare il contenuto del carrello di un acquirente. Per l’accesso anticipato, consulta le [voci riga di Payments](https://docs.stripe.com/payments/payment-line-items.md). ### Visualizza i messaggi sulla modalità di pagamento nel tuo sito web [Payment Method Messaging Element](https://docs.stripe.com/js/elements_object/create_element?type=paymentMethodMessaging) è un componente dell’interfaccia utente incorporabile che aiuta i clienti a sapere quali opzioni di pagamento a rate hanno al momento del pagamento direttamente dalle pagine del prodotto, del carrello o del pagamento. Per aggiungere Payment Method Messaging Element al tuo sito web, consulta [Messaggi sul metodo di pagamento](https://docs.stripe.com/elements/payment-method-messaging.md).