Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageUtiliser Managed Payments
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
Développer une intégration dans l'application
Paiements par TPE
Terminal
    Présentation
    Accepter les paiements par TPE
    Disponibilité mondiale
    Conception d'intégration
    Choisir votre lecteur
    Concevoir une intégration
    Démarrage rapide
    Exemples d'applications
    Tests
    Configuration de Terminal
    Configurer votre intégration
    Paiements à plusieurs parties avec Connect
    Se connecter à un lecteur
    Acceptation d'un paiement
    Encaisser des paiements par carte
    Autres moyens de paiement
    Accepter les paiements hors ligne
    Paiement des commande par courrier/par téléphone
    Spécificités régionales
    Lors du règlement
    Collecter des pourboires
    Collecter et enregistrer des informations de paiement pour une utilisation ultérieure
    Autorisations flexibles
    Après le paiement
    Rembourser des transactions
    Fournir des reçus
    Personnalisez Checkout
    Affichage du panier
    Collecter les données saisies à l'écran
    Collecter les données des lectures de la piste magnétique
    Collecter les données des paiements NFC sans contact
    Applications sur des appareils
    Gérer les lecteurs
    Commander, renvoyer ou remplacer des lecteurs
    Enregistrer des lecteurs
    Gérer les emplacements et les zones
    Configurer des lecteurs
    Suivre les lecteurs
    Références
    Documentation de l'API
    Lecteurs mobiles
    Lecteurs intelligents
    Lecteurs Tap to Pay
    Guide de migration du SDK
    Liste de contrôle pour le déploiement
    Fiches produit du lecteur Stripe Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Scénarios de paiement
Gérer plusieurs devises
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Financial Connections
Climate
Comprendre la fraude
Radar pour la protection contre la fraude
Gestion des litiges
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsTerminal

Configurer votre intégration

Configurez un SDK Stripe Terminal ou une intégration pilotée par serveur pour accepter les paiements par TPE.

Documentation du SDK

Pour obtenir plus informations sur l’ensemble des méthodes, des objets et des erreurs disponibles, consultez notre documentation complète sur les SDK.

Pour démarrer avec le SDK Android, suivez ces quatre étapes :

  1. Installer le SDK dans votre application.
  2. Configurer votre application.
  3. Configurer l’endpoint du token de connexion dans votre application et votre back-end.
  4. Initialiser le SDK dans votre application.

Installer le SDK
Côté client

Mise en garde

Le SDK n’est plus compatible avec les bibliothèques d’assistance, car nous utilisons Room pour enregistrer et gérer l’état de l’application tout au long de son cycle de vie. Assurez-vous que votre application a migré vers AndroidX.

Pour installer le SDK, ajoutez stripeterminal au bloc dependencies du fichier build de votre application :

build.gradle.kts
Kotlin
Groovy
No results
plugins { id("com.android.application") } android { ... } dependencies { implementation("com.stripe:stripeterminal:5.1.0") // ... }

(Facultatif) Prise en charge des coroutines Kotlin

SDK version 5.0.0 includes an optional module, stripeterminal-ktx. This module provides suspend function wrappers for asynchronous Terminal APIs, allowing you to write simple, sequential code instead of nesting callbacks.

Pour l’utiliser, ajoutez sa dépendance :

build.gradle.kts
Kotlin
Groovy
No results
dependencies { implementation("com.stripe:stripeterminal:5.1.0") // Add the coroutines module implementation("com.stripe:stripeterminal-ktx:5.1.0") // ... }

Voir un exemple de ce modèle d’intégration dans notre application Kotlin exemple sur GitHub.

Définir la version Java cible

Ensuite, étant donné que le SDK repose sur Java 8, le fichier de build de votre application doit l’indiquer en précisant la version Java cible :

build.gradle.kts
Kotlin
Groovy
No results
android { // ... compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } }

Remarque

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.

Pour en savoir plus sur la migration à partir de versions antérieures ou bêta du SDK Android, consultez le guide de migration Stripe Terminal.

Configurer votre application
Côté client

Vous devez activer l’autorisation ACCESS_FINE_LOCATION. Pour connecter un lecteur Bluetooth, vous devez également activer les autorisations Bluetooth. Ajoutez les autorisations appropriées à votre manifeste, comme indiqué ici :

AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />

Avant d’initialiser l’objet Terminal, ajoutez la vérification suivante afin de vérifier que l’autorisation ACCESS_FINE_LOCATION est activée dans votre application :

MainActivity.kt
Kotlin
Java
No results
if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { val permissions = arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION) ActivityCompat.requestPermissions(this, permissions, REQUEST_CODE_LOCATION) }

Vérifiez également que l’utilisateur de l’application accorde l’autorisation d’accéder aux emplacements ; le SDK ne peut fonctionner sans elle. À cet effet, remplacez la méthode onRequestPermissionsResult dans votre application et vérifiez le résultat de l’autorisation.

MainActivity.kt
Kotlin
Java
No results
override fun onRequestPermissionsResult( requestCode: Int, permissions: Array<String>, grantResults: IntArray ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) if (requestCode == REQUEST_CODE_LOCATION && grantResults.isNotEmpty() && grantResults[0] != PackageManager.PERMISSION_GRANTED ) { throw RuntimeException("Location services are required to connect to a reader.") } }

Vous devez également vous assurer que les services de localisation et de Bluetooth sont activés sur l’appareil, et pas seulement pour l’application. Voici un exemple de ce à quoi cela peut ressembler dans les paramètres de l’appareil :

Capture d’écran de la page des paramètres de localisation sur un appareil Android.

Paramètres d’emplacement

Capture d’écran de la page des paramètres Bluetooth sur un appareil Android.

Paramètres Bluetooth

Remarque

Afin de réduire les risques de fraude associés aux paiements, et de limiter le nombre de litiges, Stripe a besoin de connaître le lieu où se déroulent les paiements. Si le SDK ne peut déterminer l’emplacement de l’appareil Android, les paiements sont désactivés jusqu’à ce que l’accès à l’emplacement soit rétabli.

Configurer l'endpoint ConnectionToken
Côté serveur
Côté client

Côté serveur

Pour se connecter à un lecteur, votre back-end doit donner au SDK la permission d’utiliser le lecteur avec votre compte Stripe en lui fournissant la clé secrète d’un ConnectionToken. Votre back-end doit créer des tokens de connexion uniquement pour les clients qu’il reconnaît comme fiables.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/terminal/connection_tokens \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST"

Obtenez la clé secrète à partir du ConnectionToken sur votre serveur et transmettez-la côté client.

Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
post '/connection_token' do token = # ... Create or retrieve the ConnectionToken {secret: token.secret}.to_json end

Mise en garde

Le secret du ConnectionToken vous permet de vous connecter à n’importe quel lecteur Stripe Terminal et de traiter les paiements à l’aide de votre compte Stripe. Veillez à authentifier l’endpoint pour créer des tokens de connexion et à le protéger contre la falsification des requêtes intersites (CSRF).

Côté client

Afin de permettre au SDK d’accéder à cet endpoint, déployez l’interface ConnectionTokenProvider dans votre application. Celle-ci définit une fonction unique qui demande un ConnectionToken à votre back-end.

CustomConnectionTokenProvider.kt
Kotlin
Java
No results
class CustomConnectionTokenProvider : ConnectionTokenProvider { override fun fetchConnectionToken(callback: ConnectionTokenCallback) { try { // Your backend should call /v1/terminal/connection_tokens and return the // JSON response from Stripe. When the request to your backend succeeds, // return the `secret` from the response to the SDK. callback.onSuccess(secret) } catch (e: Exception) { callback.onFailure( ConnectionTokenException("Failed to fetch connection token", e) ) } } }

Cette fonction est appelée dès lors que le SDK doit s’authentifier auprès de Stripe ou du lecteur. Elle est également appelée lorsqu’un nouveau token est nécessaire pour se connecter à un lecteur (par exemple, lorsque votre application s’est déconnectée du lecteur). Si le SDK n’est pas en mesure de récupérer un nouveau jeton de connexion depuis votre backend, la connexion au lecteur échoue associée à une erreur de votre serveur.

Mise en garde

Ne mettez pas en cache et ne codez pas en dur le token de connexion. Le SDK gère le cycle de vie du token.

Épinglage des certificats

Dans la plupart des cas, vous ne devez pas configurer votre application avec l’épinglage de certificats. Si votre application l’exige, consultez la documentation sur l’épinglage des certificats.

Initialiser le SDK
Côté client

Le SDK Android est sensible au cycle de vie. Pour éviter les fuites de mémoire et garantir un nettoyage approprié des processus de longue durée du SDK Terminal, votre application doit implémenter une sous-classe Application qui utilise TerminalApplicationDelegate.onCreate() pour informer le SDK des événements de cycle de vie.

StripeTerminalApplication.kt
Kotlin
Java
No results
// Substitute with your application name, and remember to keep it the same as your AndroidManifest.xml class StripeTerminalApplication : Application() { override fun onCreate() { super.onCreate() TerminalApplicationDelegate.onCreate(this) } }

Remarque

Si vous souhaitez utiliser Tap to Pay sur Android (TTPA), l’initialisation dans Application est légèrement différente de cet exemple. Consultez Se connecter à un lecteur avec TTPA.

La classe Terminal mise à disposition par le SDK Stripe Terminal dispose d’une interface générique permettant de détecter les lecteurs, de se connecter à un lecteur et d’effectuer des opérations sur le lecteur, telles que l’affichage des informations du panier, l’encaissement de paiements et l’enregistrement de cartes bancaires pour une utilisation ultérieure.

Pour commencer, fournissez le contexte actuel de l’application, le ConnectionTokenProvider implémenté à l’Étape 3 et un objet TerminalListener. Vous pouvez utiliser cet écouteur pour gérer des événements tels que des paiements et des mises à jour de l’état de la connexion à partir du SDK.

MainActivity.kt
Kotlin
Java
No results
// Create your listener object. Override any methods that you want to be notified about val listener = object : TerminalListener { override fun onConnectionStatusChange(status: ConnectionStatus) { println("onConnectionStatusChange: $status"); } override fun onPaymentStatusChange(status: PaymentStatus) { println("onPaymentStatusChange: $status"); } } // Choose the level of messages that should be logged to your console val logLevel = LogLevel.VERBOSE // Create your token provider. val tokenProvider = CustomConnectionTokenProvider() // Pass in the current application context, your desired logging level, your token provider, and the listener you created if (!Terminal.isInitialized()) { Terminal.init(applicationContext, logLevel, tokenProvider, listener, offlineListener) } // Since the Terminal is a singleton, you can call getInstance whenever you need it Terminal.getInstance()

Mises à jour du SDK

Stripe publie régulièrement des mises à jour qui peuvent inclure de nouvelles fonctionnalités, des corrections de bugs et des mises à jour de sécurité. Mettez à jour votre SDK dès qu’une nouvelle version est disponible. Les SDK actuellement disponibles sont les suivants :

  • SDK Stripe Terminal Android
  • SDK Stripe Terminal iOS
  • SDK Stripe Terminal JavaScript
  • SDK Stripe Terminal React Native

Prochaines étapes

  • Se connecter à un lecteur
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc