Accettare un pagamento utilizzando Stripe Elements e l'API ChargesAPI Charges
Accetta pagamenti online da clienti statunitensi e canadesi.
API precedente
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
L’API Charges non supporta le seguenti funzionalità, molte delle quali sono necessarie per la conformità delle carte di credito:
- Esercenti in India
- Bank requests for card authentication
- Strong Customer Authentication
Usa i componenti di interfaccia utente preconfigurati per creare un modulo di pagamento che ti consenta di raccogliere in modo sicuro i dati della carta di un cliente senza manipolare dati sensibili. I dati della carta vengono quindi convertiti in un token rappresentativo che puoi inviare in tutta sicurezza ai tuoi server. Il tuo server può utilizzare questo token per creare un addebito.
Nota
La procedura descritta in questa guida è implementata completamente su GitHub. Per eseguire l’app demo, clona il repository e segui le istruzioni.
Configurare StripeLato clientLato server
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.
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
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
:
Creare il modulo di pagamentoLato client
Acquisisci i dati della carta di credito in modo sicuro sul client con CardInputWidget, un componente integrabile dell’interfaccia utente fornito dall’SDK che acquisisce il numero di carta, la data di scadenza, il CVC e il codice postale
CardInputWidget esegue la convalida e la formattazione in tempo reale.
Crea un’istanza del componente carta e un pulsante Paga aggiungendo quanto segue al layout della pagina di completamento del pagamento:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_checkout" tools:context=".CheckoutActivity"> <!-- ... --> <com.stripe.android.view.CardInputWidget android:id="@+id/cardInputWidget" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp"/> <Button android:text="Pay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/payButton" android:layout_marginTop="20dp" app:layout_constraintTop_toBottomOf="@+id/cardInputWidget" app:layout_constraintStart_toStartOf="@+id/cardInputWidget" app:layout_constraintEnd_toEndOf="@+id/cardInputWidget"/> <!-- ... --> </androidx.constraintlayout.widget.ConstraintLayout>
Esegui la tua app e verifica che nella pagina di completamento del pagamento siano presenti il componente carta e il pulsante di pagamento.
Creare un tokenLato client
Quando l’utente tocca il pulsante di pagamento, converti i dati della carta raccolti da CardInputWidget
in un token Stripe. La tokenizzazione garantisce che nessun dato sensibile della carta arrivi al tuo server, mantenendo così la tua integrazione conforme alle norme PCI.
Il seguente codice mostra come utilizzare Stripe#createToken(). Il metodo utilizza un’istanza Card
come primo parametro. Il secondo parametro è l’istanza ApiResultCallback<Token> che il client richiama in caso di esito positivo o negativo. Una volta completata la tokenizzazione, invia al tuo server l’ID token restituito.
Invia l’ID token al tuo server dal client.
Creare un addebito con il tokenLato server
La risposta alla creazione di un addebito sarà un addebito o un errore con un codice di errore. Se la risposta ha esito positivo, puoi evadere l’ordine del cliente e mostrare una schermata indicante che l’addebito è riuscito. In caso contrario, mostra un errore.
Verificare l’integrazione
Se riesci a inserire correttamente il numero di una carta di test in Card Element, invialo al server e verifica che abbia creato l’addebito. La tua integrazione è così terminata.
Hai creato un’integrazione con l’API Charges per iniziare subito ad accettare i pagamenti con carta. Questa API non supporta l’espansione delle aziende o clienti al di fuori di Stati Uniti e Canada. Per pagamenti più sicuri e globali, scopri come accettare un pagamento con l’API Payment Intents.