Accettare un pagamento Klarna
Scopri come accettare un pagamento con Klarna, una modalità di pagamento a rate utilizzata in tutto il mondo.
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 immediatamente se il pagamento ha avuto esito positivo o negativo.
Nota
Prima di avviare l’integrazione, assicurati che il tuo account sia idoneo per Klarna accedendo alle impostazioni delle modalità di pagamento.
Configura StripeLato serverLato client
Innanzitutto, devi creare un account Stripe. Registrati ora.
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:
Lato client
L’SDK per Android di Stripe è open source e completamente documentato.
Per installare l’SDK, aggiungi stripe-android
al blocco dependencies
del tuo file app/build.gradle:
Nota
Per ulteriori informazioni sulla versione più recente e su quelle precedenti dell’SDK, consulta la pagina Releases su GitHub. Per ricevere una notifica quando viene pubblicata una nuova versione, imposta il controllo delle versioni per il repository.
Configura l’SDK con la tua chiave pubblicabile di Stripe in modo che possa inviare le richieste all’API Stripe, ad esempio nella sottoclasse Application
:
Nota
Usa le chiavi di test durante i test e le chiavi della modalità live quando pubblichi l’app.
I nostri esempi di codice Stripe utilizzano inoltre OkHttp e GSON per inviare richieste HTTP a un server.
Creare un PaymentIntentLato serverLato client
Un PaymentIntent è 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 client
Nel PaymentIntent restituito è presente una chiave privata client, 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.
Inviare il pagamento a StripeLato client
Recupera la chiave privata client dal PaymentIntent che hai creato nel passaggio 2 e chiama il metodo PaymentLauncher confirm. Verrà visualizzata una vista web dove il cliente potrà completare il pagamento. In seguito, viene chiamato onActivityResult con il risultato del pagamento.
Eseguire il test dell'integrazione Klarna
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.
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 |
|
Carta di debito |
|
FacoltativoSeparare l'autorizzazione dall'addebito
Klarna supporta l’autorizzazione e l’acquisizione separate. 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.
Indicare a Stripe di eseguire solo l’autorizzazione
Per indicare che vuoi separare l’autorizzazione dall’acquisizione, imposta capture_method su
manual
quando crei il PaymentIntent. Il parametro indica a Stripe di limitarsi ad autorizzare l’importo sul conto Klarna del cliente.Acquisire i fondi
Dopo l’avvenuta autorizzazione, lo stato PaymentIntent passa a
requires_
. Per acquisire i fondi autorizzati, crea una richiesta di acquisizione di PaymentIntent. L’importo totale autorizzato viene acquisito per impostazione predefinita, cioè non puoi acquisire un importo superiore.capture 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.
FacoltativoGestire gli eventi successivi al pagamento
Stripe invia un evento payment_intent.succeeded quando il pagamento viene completato. Utilizza la Dashboard, un webhook 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.
Gestisci gli eventi manualmente nella dashboard
Utilizza la dashboard per visualizzare i pagamenti di test nella dashboard, inviare le ricevute tramite email, gestire i bonifici o ritentare i pagamenti non riusciti.
Crea un webhook personalizzato
Crea un gestore webhook personalizzato 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, il marketing e i saldi, integrando una richiesta di registrazione del partner.
FacoltativoPersonalizzare 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.
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
FacoltativoAggiungere voci riga al PaymentIntent
Voci riga unificate con Klarna
Per ottimizzare i tassi di approvazione durante l’integrazione con Klarna, includi dati line_
per rappresentare il contenuto del carrello di un acquirente. Per l’accesso anticipato, consulta le voci riga di Payments.
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 viene scollegato e lo stato dell’oggetto PaymentIntent diventa automaticamente a requires_
.
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 viene scollegato e lo stato dell’oggetto PaymentIntent passa automaticamente da requires_
a requires_
.
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 indirizzate a Klarna sono soggette a limiti di frequenza oltre ai limiti di frequenza a livello dell’API di Stripe. Questi limiti possono variare a seconda della forma delle richieste API effettuare. In generale, se invii più di 50 richieste al minuto,potresti riscontrare alcuni limiti di frequenza sotto forma di risposte con codice di stato HTTP 400
o 402
. Contattaci per ulteriori informazioni se temi che il tuo utilizzo possa raggiungere questi livelli, 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.
Attenzione
Prima della versione API 2023-08-16
, tutti gli errori di Klarna venivano segnalati come 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 | Il cliente ha annullato il pagamento sulla pagina di Klarna |
payment_method_provider_decline | Klarna ha rifiutato il pagamento del cliente |
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 | Si è verificato un errore imprevisto durante il tentativo di utilizzare Klarna |