Accepter un paiement avec Stripe Elements et l'API ChargesAPI Charges
Accepter les paiements en ligne de clients américains et canadiens.
Ancienne API
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
L’API Charges ne prend pas en charge les fonctionnalités suivantes, dont beaucoup sont nécessaires à la conformité d’une carte bancaire :
Utilisez notre composant d’interface de carte préconfiguré pour créer un formulaire de paiement qui vous permet de collecter les informations de carte d’un client en toute sécurité sans manipuler de données sensibles. Les informations de la carte sont ensuite converties en un token représentatif que vous pouvez envoyer sans risque à vos serveurs. Votre serveur peut ensuite utiliser ce token pour créer un paiement.
Note
Les étapes de ce guide sont entièrement mises en œuvre sur GitHub. Clonez le référentiel et suivez les instructions pour exécuter l’application de démonstration.
Configurer StripeCôté clientCôté serveur
Côté serveur
Pour cette intégration, votre serveur doit être doté d’endpoints qui communiquent avec l’API de Stripe. Utilisez nos bibliothèques officielles pour accéder à l’API de Stripe depuis votre serveur :
Côté client
Le SDK Stripe Android est disponible en open source et fait l’objet d’une documentation complète.
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
Note
Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour savoir quand une nouvelle version est disponible, surveillez les versions du référentiel.
Configurez le SDK avec votre clé publique Stripe de façon à ce qu’il puisse envoyer des requêtes à l’API Stripe, par exemple à la sous-classe Application
:
Note
Utilisez vos clés du mode test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.
Créez votre formulaire de paiementCôté client
Côté client, collectez les données de carte bancaire voulues de manière sécurisée avec le CardInputWidget, un composant d’interface utilisateur prêt à l’emploi fourni par le SDK, qui collecte le numéro de carte, la date d’expiration, le CVC et le code postal.
CardInputWidget effectue la validation et le formatage à la volée.
Créez une instance du composant de la carte et un bouton Payer en ajoutant ce qui suit à votre page de paiement
<?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>
Exécutez votre application et assurez-vous que votre page de paiement affiche le composant de carte et le bouton de paiement.
Créez un tokenCôté client
Quand l’utilisateur appuie sur le bouton de paiement, convertissez les informations de carte bancaire collectées par CardInputWidget
en token Stripe. La tokenisation garantit qu’aucune donnée de carte bancaire sensible ne transite par votre serveur, afin que votre intégration reste conforme à la norme PCI.
Le code suivant montre comment utiliser Stripe#createToken(). La méthode prend une instance Card
comme premier paramètre. Le second paramètre est l’instance ApiResultCallback<Token> que le client invoque en cas de réussite ou d’échec. Une fois la tokenisation effectuée, envoyez l’ID de token renvoyé à votre serveur.
Envoyez l’ID du token à votre serveur à partir du client.
Créez un paiement avec le tokenCôté serveur
La réponse à la création d’un paiement sera soit un paiement soit une erreur avec un code d’erreur. Si la réponse est positive, vous pouvez traiter la commande du client et afficher une page indiquant que son paiement a abouti. Sinon, vous pouvez afficher une page contenant un message d’erreur.
Tester votre intégration
Si vous pouvez saisir un numéro de carte de test dans l’élément de carte, envoyez-le au serveur et vérifiez qu’il a créé le paiement. Votre intégration est alors terminée.
Vous avez créé une intégration avec l’API Charges pour commencer à accepter immédiatement des paiements par carte. Cette API ne prend pas en charge la croissance des entreprises ou de la clientèle en dehors des États-Unis et du Canada. Pour des paiements plus sûrs à l’échelle mondiale, découvrez comment accepter un paiement avec l’API Payment Intents.