Se connecter à un lecteur
Note
Si vous n’avez pas encore choisi de lecteur, comparez les lecteurs Terminal et sélectionnez celui qui répond au mieux à vos exigences.
Note
Pour les lecteurs intelligents, tels que le lecteur BBPOS WisePOS E reader ou le lecteur Stripe S700, nous vous recommandons d’utiliser l’intégration pilotée par serveur plutôt que le SDK JavaScript. L’intégration pilotée par serveur utilise l’API Stripe au lieu de s’appuyer sur les communications locales pour collecter les paiements. Le SDK JavaScript et le SDI ne prennent pas en charge le fonctionnement en mode hors ligne. Consultez notre comparaison des plateformes pour choisir plateforme la mieux adaptée à 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 les lecteurs via le SDK
- Se connecter à un lecteur via 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
Le moyen le plus simple est d’ajouter votre lecteur dans le Dashboard.
- Si vous avez déjà créé un emplacement, cliquez dessus. Sinon, créez-en un en cliquant sur + Nouveau.
- Sous la section Lecteurs, cliquez sur + Nouveau.
- 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 lorsque vous êtes invité à le faire.
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, veuillez dresser la liste de 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 à connecter à votre application de point de vente à l’aide de la méthode discoverReaders
. Vous pouvez affiner vos résultats en spécifiant l’emplacement ( location
) dans lequel vous avez enregistré le lecteur lors de l’étape précédente.
async function discoverReaders() { const config = {simulated: false, location:
} const discoverResult = await terminal.discoverReaders(config); if (discoverResult.error) { console.log('Failed to discover: ', discoverResult.error); } else if (discoverResult.discoveredReaders.length === 0) { console.log('No available readers.'); } else { // You should show the list of discoveredReaders to the // cashier here and let them select which to connect to (see below). connectReader(discoverResult); } }'{{LOCATION_ID}}'
Se connecter à un lecteurCôté client
Pour connecter votre application de point de vente à un lecteur, appelez connectReader en indiquant le lecteur sélectionné.
async function connectReader(discoverResult) { // Just select the first reader here. const selectedReader = discoverResult.discoveredReaders[0]; const connectResult = await terminal.connectReader(selectedReader); if (connectResult.error) { console.log('Failed to connect:', connectResult.error); } else { console.log('Connected to reader:', connectResult.reader.label); } }
Connexions multiples
const connectResult = await terminal.connectReader(reader, {fail_if_in_use: true});
fail_if_in_use est « false » (par défaut) | fail_if_in_use est « true » | |
---|---|---|
connectReader appelé depuis un nouveau SDK lorsque le lecteur est inactif | La connexion existante entre le SDK et le lecteur est interrompue 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 est interrompue 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. |
connectReader appelé depuis un nouveau SDK lorsque le lecteur est en train d’effectuer une transaction | La connexion existante entre le SDK et le lecteur est interrompue 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 fail_if_in_use
sur true
lors de la première tentative de connexion de votre application. Ensuite, autorisez vos utilisateurs à réessayer la connexion avec fail_if_in_use
définie sur false
si la connexion échoue la première fois. Avec cette configuration, l’un de vos utilisateurs ne peut pas interrompre accidentellement une transaction en se connectant par inadvertance à un lecteur en cours d’utilisation, mais peut toujours se connecter si nécessaire.
Gérer les déconnexions
Votre application doit déployer le rappel UnexpectedReaderDisconnect
afin de remédier à toute déconnexion du lecteur.
Lorsque vous implémentez ce rappel, affichez une interface utilisateur qui informe l’utilisateur que le lecteur est déconnecté. Vous pouvez appeler discoverReaders
pour rechercher les lecteurs et initier la 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.
const terminal = StripeTerminal.create({ onFetchConnectionToken: fetchConnectionToken, onUnexpectedReaderDisconnect: unexpectedDisconnect, }); function unexpectedDisconnect() { // 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.
- Lorsque vous vous connectez à un lecteur, enregistrez son numéro de série dans un emplacement de stockage persistant, comme l’API localStorage.
- Au lancement de votre application, vérifiez si un numéro de série enregistré se trouve dans cet emplacement persistant. Si vous en trouvez un, appelez la méthode
discoverReaders
afin que votre application puisse essayer de retrouver le lecteur. - Si le numéro de série enregistré correspond à l’un des lecteurs détectés, essayez de vous connecter à ce lecteur à l’aide de l’objet Reader correspondant renvoyé par l’appel à
discoverReaders
. Si le lecteur en question est introuvable, mettez fin au processus de recherche.
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.