Se connecter à un lecteur
Connectez votre application à un lecteur Stripe Terminal.
Remarque
Si vous n’avez pas encore choisi de lecteur, comparez les lecteurs Terminal et sélectionnez celui qui répond le mieux à vos besoins.
Les lecteurs intelligents exécutent le logiciel du lecteur Stripe pour communiquer directement avec Stripe via Internet. Pour connecter votre application à un lecteur intelligent, suivez ces trois étapes :
- Enregistrer un lecteur sur votre compte Stripe.
- Détecter des lecteurs avec le SDK.
- Se connecter à un lecteur avec le SDK
Enregistrer un lecteurCôté serveur
Avant de pouvoir connecter votre application à un lecteur intelligent, vous devez enregistrer le lecteur sur votre compte.
Enregistrement dans le Dashboard
Vous pouvez ajouter votre lecteur directement dans le Dashboard.
Enregistrer par code d’enregistrement
- Sur la page Lecteurs, cliquez sur Enregistrer un lecteur.
- Si vous disposez d’un lecteur Verifone P400, saisissez la séquence
0-7-1-3-9
pour afficher un code d’enregistrement unique. Si vous disposez d’un lecteur BBPOS WisePOS E ou d’un lecteur Stripe S700, accédez aux paramètres du lecteur, puis appuyez sur Générer un code d’association. - Saisissez le code d’enregistrement et cliquez sur Suivant.
- Vous pouvez facultativement choisir un nom pour le lecteur.
- Si vous avez déjà créé un emplacement, sélectionnez le nouvel emplacement du lecteur. Sinon, créez-en un en cliquant sur + Ajouter un emplacement.
- Cliquez sur Enregistrer pour terminer l’enregistrement de votre lecteur.
Enregistrer par numéro de série
- Sur la page Lecteurs, cliquez sur Enregistrer un lecteur.
- Recherchez le numéro de série de l’appareil et saisissez-le. Pour enregistrer plusieurs appareils à la fois, vous pouvez saisir plusieurs numéros de série séparés par des virgules.
- Vous pouvez facultativement choisir un nom pour le lecteur.
- Si vous avez déjà créé un emplacement, sélectionnez le nouvel emplacement du lecteur. Sinon, créez-en un en cliquant sur + Ajouter un emplacement.
- Cliquez sur Enregistrer pour terminer l’enregistrement de votre lecteur.
Enregistrer par commande de matériel
- Sur la page Commandes de matériel, trouvez une commande dont le statut est « expédié » ou « livré ». Cliquez sur le menu de débordement () à la fin de la ligne, puis cliquez sur Enregistrer.
- Sur la page Enregistrer des lecteurs, sélectionnez un ou plusieurs lecteurs dans la commande de matériel à enregistrer, puis cliquez sur Enregistrer.
- Vous pouvez facultativement choisir un nom pour le lecteur. Si vous avez sélectionné plusieurs lecteurs, le nom sert de préfixe et nous nommons les lecteurs de manière séquentielle (par exemple, pour une entrée donnée « Lecteur de test », nous nommons les lecteurs « Lecteur de test 1 », « Lecteur de test 2 », et ainsi de suite).
- Si vous avez déjà créé un emplacement, sélectionnez le nouvel emplacement du lecteur. Sinon, créez-en un en cliquant sur + Ajouter un emplacement.
- Cliquez sur Enregistrer pour terminer l’enregistrement de vos lecteurs.
Enregistrement à l’aide de l’API
Dans le cadre de déploiements de plus grande envergure, donnez à vos utilisateurs sur le terrain la possibilité de recevoir et de configurer eux-mêmes de nouveaux lecteurs. Dans votre application, créez un flux permettant d’enregistrer un lecteur à l’aide de l’API Stripe.
- Si vous disposez d’un lecteur Verifone P400, saisissez la séquence
0-7-1-3-9
pour afficher un code d’enregistrement unique. Si vous disposez d’un lecteur BBPOS WisePOS E ou d’un lecteur Stripe S700, accédez aux paramètres du lecteur, puis appuyez sur Générer un code d’association. - L’utilisateur saisit le code dans votre application.
- Votre application envoie le code à Stripe :
Afin de confirmer le bon enregistrement de votre lecteur, listez tous les lecteurs que vous avez enregistrés à cet emplacement :
Détecter les lecteursCôté client
Après avoir enregistré le lecteur sur votre compte, recherchez les lecteurs précédemment enregistrés afin de vous connecter à votre application de point de vente à l’aide de la méthode DiscoverReadersAsync
.
Vous pouvez affiner votre recherche en spécifiant l’emplacement location
dans lequel vous avez enregistré le lecteur lors de l’étape précédente.
public async Task<IImmutableList<Reader>> DiscoverReadersAsync() { try { var config = new DiscoveryConfiguration.Builder() .SetIsSimulated(false) .SetLocation(
) .Build(); Console.WriteLine("Discovered readers"); return await Terminal.Instance.DiscoverReadersAsync(config); } catch (TerminalException ex) { // Placeholder for handling exception throw; } }'{{LOCATION_ID}}'
Se connecter à un lecteurCôté client
Pour connecter votre application de point de vente à un lecteur, appelez ConnectInternetReaderAsync
avec le lecteur sélectionné.
// after selecting a reader to connect to Reader connectedReader; try { var config = new InternetConnectionConfiguration.Builder() .Build(); connectedReader = await Terminal.Instance.ConnectInternetReaderAsync(selectedReader, config); Console.WriteLine("Connected to reader"); } catch (TerminalException ex) { // Placeholder for handling exception throw; }
Connexions multiples
Une seule instance du SDK Stripe Terminal peut se connecter à un lecteur à la fois. Par défaut, lorsque vous appelez ConnectInternetReaderAsync
à partir d’une autre application, la connexion entrante remplace la connexion existante entre le SDK et le lecteur, et le SDK précédemment connecté se déconnecte du lecteur. La méthode 'ConnectInternetReaderAsync
utilise un objet de configuration avec une propriété failIfInUse
dont la valeur par défaut est false
. Lorsque votre application définit failIfInUse
sur « true », l’appel ConnectInternetReaderAsync
présente un autre comportement : la connexion entrante échoue lorsque le lecteur est au milieu d’un appel CollectPaymentMethodAsync
ou ConfirmPaymentIntentAsymc
lancé par un autre SDK. Si le lecteur est connecté à un autre SDK mais qu’il est inactif (s’il affiche l’écran d’accueil avant l’appel de CollectPaymentMethodAsync
), le paramétrage de failIfInUse
ne modifie pas le comportement de la connexion, et la demande de connexion entrante peut toujours interrompre la connexion SDK-lecteur existante.
// after selecting a reader to connect to Reader connectedReader; try { var config = new InternetConnectionConfiguration.Builder() .SetFailIfInUse(true) .Build(); connectedReader = await Terminal.Instance.ConnectInternetReaderAsync(selectedReader, config); Console.WriteLine("Connected to reader"); } catch (TerminalException ex) { // Placeholder for handling exception throw; }
FailIfInUse est « false » (par défaut) | FailIfInUse est « true » | |
---|---|---|
ConnectInternetReaderAsync appelé depuis un nouveau SDK lorsque le lecteur est inactif. | La connexion existante entre le SDK et le lecteur s’interrompt et le nouveau SDK se connecte au lecteur. La commande suivante du SDK précédemment connecté échoue avec une erreur de lecteur, et la méthode OnUnexpectedReaderDisconnect de cette application est appelée. | La connexion existante entre le SDK et le lecteur s’interrompt et le nouveau SDK se connecte au lecteur. La commande suivante du SDK précédemment connecté échoue avec une erreur de lecteur, et la méthode OnUnexpectedReaderDisconnect de cette application est appelée. |
ConnectInternetReaderAsync appelé depuis un nouveau SDK lorsque le lecteur est en train d’effectuer une transaction. | La connexion existante entre le SDK et le lecteur s’interrompt et le nouveau SDK se connecte au lecteur. La commande suivante du SDK précédemment connecté échoue avec une erreur de lecteur, et la méthode OnUnexpectedReaderDisconnect de cette application est appelée. | La connexion entrante échoue avec une erreur de lecteur. La connexion SDK-lecteur existante n’est pas interrompue et la commande en cours se poursuit. |
Pour perturber le moins possible l’expérience de connexion dans les environnements à plusieurs lecteurs, nous vous recommandons de définir la valeur failIfInUse
sur true
lors de la première tentative de connexion de votre application. Ensuite, permettez à vos utilisateurs de réessayer la connexion avec failIfInUse
sur false
si la connexion échoue la première fois.
Avec cette configuration, vos utilisateurs ne peuvent pas interrompre accidentellement une transaction en se connectant par inadvertance à un lecteur en cours d’utilisation, mais peuvent toujours se connecter si nécessaire.
Gérer les déconnexions
Votre application doit implémenter le rappel OnUnexpectedReaderDisconnect
afin de remédier à toute déconnexion du lecteur. Lors de la mise en place de ce rappel, affichez une interface utilisateur qui informe l’utilisateur de la déconnexion du lecteur. Vous pouvez appeler DiscoverReadersAsync
pour rechercher des lecteurs et initier une reconnexion.
Votre application peut tenter de se reconnecter automatiquement au lecteur déconnecté ou afficher une interface utilisateur qui invite l’utilisateur à se reconnecter à un autre lecteur.
Le lecteur peut se déconnecter de votre application s’il perd la connexion au réseau. Pour simuler une déconnexion inattendue, éteignez le lecteur.
public class TerminalListener : ITerminalListener { // ... Terminal.InitTerminal( connectionTokenProvider: connectionTokenProvider, terminalListener: this, offlineListener: offlineListener, applicationInformation: applicationInformation ); // ITerminalListener public void OnUnexpectedReaderDisconnect(Reader reader) { // Consider displaying a UI to notify the user and start rediscovering readers } }
Reconnexion automatique
Stripe Terminal ne se reconnecte pas automatiquement à un lecteur au démarrage de votre application. Vous pouvez créer un flux de reconnexion en enregistrant les ID de lecteur et en essayant de vous connecter à un lecteur connu au démarrage.
Au cours du processus de détection et de connexion, vous pouvez afficher un message d’interface utilisateur indiquant qu’une reconnexion automatique est en cours.
Prochaines étapes
Vous avez connecté votre application au lecteur. Vous pouvez maintenant encaisser votre premier paiement avec Stripe Terminal.
Les nom et logo BBPOS et Chipper™ sont des marques ou marques déposées de BBPOS Limited aux États-Unis et/ou dans d’autres pays. Les nom et logo Verifone® sont des marques ou marques déposées de Verifone aux États-Unis et/ou dans d’autres pays. L’utilisation de ces marques n’implique aucune approbation de la part de BBPOS ou Verifone.