Configurer votre intégration
Pour démarrer avec le SDK Android, suivez ces quatre étapes :
- Installez le SDK dans votre application
- Configurez votre application
- Configurez l’endpoint du token de connexion sur votre application et votre back-end
- Initialisez le SDK sur votre application
Installer le SDKCô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 app/build.gradle :
Ensuite, étant donné que le SDK repose sur Java 8, vous devrez préciser ce qui suit pour la version Java cible (également dans build.gradle
) :
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.
Pour en savoir plus sur la migration depuis une version bêta antérieure du SDK Android, consultez le Guide de migration vers Stripe Terminal Bêta.
Configurer votre applicationCô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 :
<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 :
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.
Note
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 ConnectionTokenCôté serveurCô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 uniquement créer des tokens de connexion pour les clients qu’il reconnaît comme fiables.
Obtenez la clé secrète du ConnectionToken sur votre serveur et communiquez-la au client.
Mise en garde
La clé secrète 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.
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 ni ne codez 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 SDKCôté client
Le SDK Android tient compte du cycle de vie des autres composants. Pour éviter les fuites de mémoire et garantir un nettoyage approprié des processus SDK Terminal de longue durée, votre application doit mettre en œuvre une sous-classe Application
dans laquelle TerminalApplicationDelegate
est utilisé pour informer le SDK des événements du cycle de vie.
Cette sous-classe enregistre les rappels du cycle de vie des activités :
La classe Terminal mise à disposition par le SDK Stripe Terminal dispose d’une interface générique permettant de rechercher un lecteur, de se connecter à un lecteur, de créer un paiement et de mettre à jour le logiciel d’un lecteur.
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 depuis le SDK, par exemple des déconnexions. Pour en savoir plus, consultez la page dédiée à la gestion des déconnexions.
Mise en garde
Si vous effectuez actuellement une mise à niveau à partir d’une version antérieure à 1.0.0-rc2
, veuillez noter que les classes TerminalLifecycleObserver
et Application
sont désormais obligatoires.
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