Accepter un paiement avec Stripe Elements et l'API ChargesAPI Charges
Acceptez 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 :
- Marchands en Inde
- Bank requests for card authentication
- Strong Customer Authentication
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 gérer de données sensibles. Les informations de la carte sont ensuite transformées en jeton représentatif que vous pouvez envoyer sans risque à vos serveurs. Votre serveur peut ensuite utiliser ce jeton pour créer un paiement.
Remarques
Les étapes de ce guide sont entièrement implémentées sur GitHub. Clonez le référentiel et suivez les instructions pour exécuter l’application de démonstration.
Configurer votre compte StripeCôté clientCôté serveur
Côté serveur
Pour cette intégration, votre serveur doit être doté de points de terminaison 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
La trousse SDK Stripe Android est à code source libre et possède une documentation complète.
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
Remarques
Pour obtenir de plus amples informations sur la version la plus récente de la trousse 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 la trousse SDK avec votre clé publique Stripe de façon à ce qu’elle puisse envoyer des requêtes à l’API Stripe, par exemple à la sous-classe Application
:
Créer votre formulaire de paiementCôté client
Côté client, collectez les données de carte voulues de manière sécurisée avec le CardInputWidget, un composant d’interface utilisateur prêt à l’emploi fourni par la trousse 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éer un jetonCôté client
Quand l’utilisateur appuie sur le bouton de paiement, transformez les informations de carte collectées par CardInputWidget
en un jeton Stripe. L’utilisation de jetons garantit qu’aucune donnée de carte 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 transformation en jeton effectuée, envoyez l’ID du jeton renvoyé à votre serveur.
Envoyez l’ID du jeton à votre serveur à partir du client.
Créer un paiement avec le jetonCô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 faire afficher une page indiquant que son paiement a été effectué. Sinon, vous pouvez faire 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 l’expansion des entreprises ou de la clientèle en dehors des États-Unis et du Canada. Pour des paiements plus sûrs à l’international, découvrez comment accepter un paiement avec l’API Payment Intents.