# Collecte des données saisies à l'écran Utilisez Terminal pour collecter les données saisies par vos clients. **Lecteurs :** [Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md) et [BBPOS WisePOS E](https://docs.stripe.com/terminal/readers/bbpos-wisepos-e.md) Avec les lecteurs intelligents Terminal, vous pouvez afficher les formulaires de saisie et collecter des informations auprès de vos clients. Vous pouvez choisir parmi six types d’entrée et ils peuvent être utilisés dans de nombreux cas d’utilisation. - Recueillez votre identifiant client pour l’échange de fidélisation avec la saisie `phone` ou `email` et traitez-le sur votre back-end. - Demandez à votre client d’accepter une renonciation ou un accord avec la saisie `signature`. - Demandez à votre client de remplir un questionnaire avec la saisie `selection` ou `text`. Vous pouvez afficher les formulaires de saisie à tout moment avant le paiement, après le paiement et en dehors d’un cycle de paiement. ![Types de saisie pris en charge](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-form-types.9715c2bbc0105378c9c4a5e8e1c4eb59.png) Types de saisie pris en charge. > N’utilisez pas `collect_inputs` pour collecter des informations sensibles (notamment des données de santé relevant du secret médical et les coordonnées de carte bancaire du client), ou des informations protégées par la loi. # Piloté par serveur > This is a Piloté par serveur for when terminal-sdk-platform is server-driven. View the full page at https://docs.stripe.com/terminal/features/collect-inputs?terminal-sdk-platform=server-driven. ## Collecter les données saisies Pour collecter des saisies à l’aide des lecteurs intelligents Terminal, utilisez la commande [collect_inputs](https://docs.stripe.com/api/terminal/readers/collect_inputs.md). L’API communique avec le lecteur pour afficher une interface utilisateur prédéfinie. ```curl curl https://api.stripe.com/v1/terminal/readers/{{TERMINALREADER_ID}}/collect_inputs \ -u "<>:" \ -d "inputs[0][type]=signature" \ -d "inputs[0][custom_text][title]=Rental Agreement" \ -d "inputs[0][custom_text][description]=Please sign below to indicate that you agree to the rental agreement." \ -d "inputs[0][custom_text][submit_button]=Submit" \ -d "inputs[0][required]=true" \ -d "inputs[1][type]=selection" \ -d "inputs[1][selection][choices][0][style]=primary" \ -d "inputs[1][selection][choices][0][text]=Email" \ -d "inputs[1][selection][choices][0][id]=email_id" \ -d "inputs[1][selection][choices][1][style]=primary" \ -d "inputs[1][selection][choices][1][text]=Printed" \ -d "inputs[1][selection][choices][1][id]=printed_id" \ -d "inputs[1][selection][choices][2][style]=secondary" \ -d "inputs[1][selection][choices][2][text]=No thanks" \ -d "inputs[1][selection][choices][2][id]=no_thanks_id" \ -d "inputs[1][custom_text][title]=Receipt" \ --data-urlencode "inputs[1][custom_text][description]=How would you like your receipt?" \ -d "inputs[1][required]=true" \ -d "inputs[2][type]=email" \ -d "inputs[2][custom_text][title]=Enter your email" \ --data-urlencode "inputs[2][custom_text][description]=We'll send updates on your order and occasional deals" \ -d "inputs[2][required]=true" \ -d "inputs[2][toggles][0][title]=Opt-in for marketing emails" \ -d "inputs[2][toggles][0][default_value]=enabled" \ -d "metadata[order_number]=12345" ``` ### Personnalisation Vous pouvez personnaliser l’apparence et le comportement de tous les types de saisie : - Définissez les entrées importantes comme [obligatoires](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-required) pour vous assurer qu’elles sont collectées. Le bouton **Ignorer** est masqué lorsque la saisie est obligatoire. - Indiquez le contexte à votre client en spécifiant le texte que vous souhaitez afficher sur l’écran du lecteur pour chaque saisie à l’aide de [custom_text](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-custom_text). | Nom du champ | Emplacement du champ | Nombre maximal de caractères | | --------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | `title` | [custom_text](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-custom_text-title) | 40 | | | `description` | [custom_text](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-custom_text-description) | 500 lorsqu’il est utilisé avec le formulaire `selection`, 100 lorsqu’il est utilisé avec un autre type de formulaire | | `submit_button` | [custom_text](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-custom_text-submit_button) | 30 | | | `skip_button` | [custom_text](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-custom_text-skip_button) | 14 | | - Utilisez des sauts de ligne `` dans votre texte pour une meilleure mise en forme. - Ajoutez jusqu’à 4 [boutons d’activation](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-toggles) que les clients peuvent activer ou désactiver pour les options booléennes, les consentements ou les adhésions. ![Boutons d'activation dans l'e-mail et dans le formulaire de sélection](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-toggle.3183c0c14cc916374d588ba54ad34639.png) Formulaire d’e-mail et de sélection avec option d’activation | Nom du champ | Emplacement du champ | Nombre maximal de caractères | | ------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | | `title` | [bouton d’activation](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-toggles-title) | 50, 25 lorsqu’il est utilisé avec le bouton de description | | `description` | [bouton d’activation](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-toggles-description) | 50, 25 lorsqu’il est utilisé avec le bouton de titre | - Une personnalisation supplémentaire est disponible pour les entrées de [sélection](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-selection). Lorsque vous spécifiez les [choix](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-selection-choices), vous pouvez mettre en évidence ou atténuer les choix à l’aide du paramètre [style](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-inputs-selection-choices-style). ![Styles des options du type de saisie « selection »](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-choice-style.dc4d2fcb98ee649a29bc43df806c114a.png) Styles des options principal et secondaire du type de saisie « selection » ### Métadonnées Vous pouvez inclure des [métadonnées](https://docs.stripe.com/api/terminal/readers/collect_inputs.md#collect_inputs-metadata), comme un ID de client ou de commande, dans votre requête. La charge utile de la requête comprend les métadonnées spécifiées, qui apparaissent à la fois dans la réponse synchrone et dans les événements de réussite ou d’échec. En incluant un identifiant unique, vous pouvez identifier et gérer plus facilement l’événement entrant. ## Interaction avec le client Lorsque le lecteur commence à collecter des données saisies, il affiche la première donnée de la liste. Le client doit faire une sélection, fournir une signature ou utiliser le clavier pour procéder aux saisies obligatoires. Si la saisie est facultative, le client peut passer à la prochaine donnée obligatoire. Une fois que le client a terminé toutes les saisies, le lecteur passe à un état transitoire pendant 3 secondes, en attendant une nouvelle demande. Si aucune requête n’est effectuée après 3 secondes, le lecteur revient à l’écran d’accueil. > Il vous incombe de connaître et de respecter toutes les lois et réglementations applicables régissant votre utilisation de cette fonctionnalité, et vous devez, dans le cadre d’une telle utilisation, obtenir, le cas échéant, tous les consentements, licences, droits et autorisations nécessaires. Si vous utilisez les données collectées par un lecteur intelligent Terminal ou les résultats affichés pour conclure des contrats avec vos clients ou leur envoyer des avis, il vous incombe de garantir la validité juridique et le caractère exécutoire de ces contrats ou avis. ## Recevoir les données saisies Lorsque toutes les entrées ont été collectées ou ignorées, Stripe envoie une requête à votre endpoint de webhook. La charge utile de la requête est identique à la réponse lors de l’appel de [collect_inputs](https://docs.stripe.com/api/terminal/readers/collect_inputs.md), mais elle ajoute quelques paramètres supplémentaires : - Pour les saisies de type signature, la [valeur](https://docs.stripe.com/api/terminal/readers/object.md#terminal_reader_object-action-collect_inputs-inputs-signature-value) est un [ID de fichier](https://docs.stripe.com/api/files/object.md#file_object-id) qui [récupère](https://docs.stripe.com/api/files/retrieve.md) l’image de la signature au format SVG. - Pour les saisies de type sélection, l’[id](https://docs.stripe.com/api/terminal/readers/object.md#terminal_reader_object-action-collect_inputs-inputs-selection-id) et le [text](https://docs.stripe.com/api/terminal/readers/object.md#terminal_reader_object-action-collect_inputs-inputs-selection-text) correspondent aux chaînes `id` et `text` du choix sélectionné. - Pour les saisies de type numéro de téléphone, adresse e-mail, texte et chiffres, la valeur est la chaîne de la réponse du client. - Si une saisie facultative est ignorée par le client, le paramètre [skipped](https://docs.stripe.com/api/terminal/readers/object.md#terminal_reader_object-action-collect_inputs-inputs-skipped) est défini sur `true`. - La [valeur](https://docs.stripe.com/api/terminal/readers/object.md#terminal_reader_object-action-collect_inputs-inputs-toggles-value) de chaque bouton d’activation est renseignée avec `enabled` ou `disabled`. Utilisez la commande curl ci-dessous comme exemple pour créer un endpoint de webhook et recevoir les données collectées. ```bash curl https://api.stripe.com/v1/webhook_endpoints \ -u <>: \ --header "Stripe-Version: 2025-05-28.basil;" \ --data-urlencode "url"="https://example.com/webhook/endpoint" \ --data-urlencode "api_version"="2025-05-28.basil;" \ --data-urlencode "enabled_events[]"="terminal.reader.action_succeeded" \ --data-urlencode "enabled_events[]"="terminal.reader.action_failed" ``` Abonnez-vous aux événements pour recevoir les données collectées dès qu’elles sont disponibles. Vous pouvez également [récupérer les événements](https://docs.stripe.com/api/terminal/readers/retrieve.md) à partir du lecteur afin d’utiliser les événements de secours si votre back-end ne parvient pas à utiliser l’événement. Stripe envoie deux webhooks pour informer votre back-end de l’état du lecteur : - `terminal.reader.action_succeeded` : envoyé lorsqu’une action `collect_inputs` réussit. - `terminal.reader.action_failed` : envoyé lorsqu’une action `collect_inputs` échoue. Cela inclut les expirations, qui surviennent après 2 minutes d’inactivité sur l’écran du lecteur. ## Télécharger les images des signatures Pour télécharger l’image de la signature collectée, [récupérez le fichier](https://docs.stripe.com/api/files/retrieve.md) et utilisez votre *clé secrète* (Stripe APIs use your secret API key to authenticate requests from your server; you can use this key to make any API call on behalf of your account, such as creating a charge or performing a refund) pour accéder à son [url](https://docs.stripe.com/api/files/object.md#file_object-url). > Stripe conserve les images de signature que vous collectez pendant 7 jours. Si vous devez utiliser des images de signature plus de 7 jours après les avoir collectées, téléchargez le fichier et conservez-le. Il vous incombe de connaître et de respecter toutes les lois applicables à l’utilisation, à la conservation et à la divulgation des signatures de vos clients. # Javascript > This is a Javascript for when terminal-sdk-platform is js. View the full page at https://docs.stripe.com/terminal/features/collect-inputs?terminal-sdk-platform=js. ## Collecter les données saisies - [collectInputs (JavaScript)](https://docs.stripe.com/terminal/references/api/js-sdk.md#collect-inputs) Pour collecter des saisies à l’aide des lecteurs intelligents Terminal, appelez `collectInputs` avec le SDK Terminal, le SDK communique avec le lecteur pour afficher une interface utilisateur préconfigurée. Vous pouvez spécifier jusqu’à 5 entrées à la fois, et le lecteur les collecte dans l’ordre. Une fois que le client a saisi ses données, le SDK renvoie les données collectées avec une promesse. ```js const collectInputsParameters = { inputs: [ { formType: 'signature', title: 'Please sign', description: 'Please sign if you agree to the terms and conditions', skipButtonText: 'skip', submitButtonText: 'Submit signature', }, { formType: 'selection', title: 'Choose an option', description: 'Were you happy with our customer service?', required: true, selectionButtons: [ { style: 'primary', text: 'Yes', }, { style: 'secondary', text: 'No', }, ], toggles: [ { title: 'Sign up for promotional emails', defaultValue: 'enabled', }, ], }, ], }; const result = await this.terminal.collectInputs(collectInputsParameters); if ('error' in result) { // Placeholder for handling exception } // Placeholder for handling collected inputs ``` ### Personnalisation Vous pouvez personnaliser l’apparence et le comportement de tous les types de saisie : - Définissez les saisies importantes comme `required` pour vous assurer qu’elles seront collectées. Le bouton **Ignorer** est masqué lorsque la saisie est obligatoire. - Fournissez un contexte à votre client en précisant le texte que vous souhaitez afficher sur l’écran du lecteur pour chaque saisie à l’aide des champs `title` et `description`. | Nom du champ | Nombre maximal de caractères | | --------------- | ---------------------------------------------------------------------------------------------------------------------- | | `title` | 40 | | `description` | 500 lorsqu’il est utilisé avec le formulaire `selection`, 100 lorsqu’il est utilisé avec tout autre type de formulaire | | `submit_button` | 30 | | `skip_button` | 14 | - Utilisez des sauts de ligne `` dans votre texte pour une meilleure mise en forme. - Ajoutez jusqu’à 4 boutons d’activation que les clients peuvent activer ou désactiver pour les options booléennes, les contrats ou les adhésions. ![Boutons d'activation dans l'e-mail et dans le formulaire de sélection](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-toggle.3183c0c14cc916374d588ba54ad34639.png) Formulaire d’e-mail et de sélection avec bouton d’activation | Nom du champ | Nombre maximal de caractères | | ------------- | ---------------------------------------------------------- | | `title` | 50, 25 lorsqu’il est utilisé avec le bouton de description | | `description` | 50, 25 lorsqu’il est utilisé avec le bouton de titre | - Pour les saisies de type `selection`, vous pouvez mettre l’accent ou non sur `choices` à l’aide du paramètre `style`. ![Styles des options du type de saisie « selection »](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-choice-style.dc4d2fcb98ee649a29bc43df806c114a.png) Styles principal et secondaire des options du type de saisie « selection » ## Interaction avec le client Lorsque le lecteur commence à collecter des données saisies, il affiche la première donnée de la liste. Une fois que le client a terminé toutes les saisies, le lecteur passe à un état transitoire pendant 3 secondes, en attendant une nouvelle demande. Si aucune requête n’est effectuée après 3 secondes, le lecteur revient à l’écran d’accueil. > Il vous incombe de connaître et de respecter toutes les lois et réglementations applicables régissant votre utilisation de cette fonctionnalité, et vous devez, dans le cadre d’une telle utilisation, obtenir, le cas échéant, l’ensemble des consentements, licences, droits et autorisations nécessaires. Si vous utilisez les données collectées par un lecteur intelligent Terminal ou les résultats affichés pour conclure des contrats avec vos clients ou leur adresser des notifications, il vous incombe de vous assurer de la validité juridique et du caractère exécutoire de ces contrats ou notifications. ## Recevoir les données saisies Lorsque toutes les entrées ont été collectées ou ignorées, le SDK Terminal renvoie les données collectées. - Pour les saisies de type signature, les données renvoyées sont une chaîne au format SVG. - Pour les saisies de type sélection, les données renvoyées sont les champs `text` et `id` du bouton sélectionné. - Pour les saisies de type numéro de téléphone, adresse e-mail, texte et chiffres, la valeur renvoyée est la chaîne de la réponse du client. - Si une saisie facultative est ignorée par le client, la valeur booléenne `skipped` est définie sur `true`. - Pour chaque bouton d’activation, l’option `enabled`, `disabled` ou `skipped` est renvoyée en fonction de l’index de la liste d’entrée des boutons d’activation. Le SDK Terminal renvoie une erreur en cas d’action annulée, d’encaissement expiré ou de toute autre erreur. ## Tester votre intégration Vous pouvez tester votre intégration à l’aide du lecteur de simulation du SDK. Avant de pouvoir tester la collecte des données saisies, vous devez d’abord vous [connecter à un lecteur Internet simulé](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=simulated&terminal-sdk-platform=js). Le lecteur de simulation permet de simuler les scénarios suivants : - Collecte des données saisies réussie sans omettre aucune saisie - Collecte des données saisies réussie en ignorant toutes les saisies non requises - Échec de la collecte des données saisies en raison d’un délai d’attente Lors de la simulation d’une collecte réussie des entrées, le SDK renvoie une valeur codée en dur pour chaque entrée en fonction du type. ```js // Simulated internet reader must already be connected collectInputsResult = { resultType: 'succeeded' as SimulatedCollectInputsResultType, skipBehavior: 'none' as SimulatedCollectInputsSkipBehavior, } as ISimulatedCollectInputsResultSucceeded; this.terminal.setSimulatorConfiguration({ collectInputsResult }); const collectInputsParameters = { inputs: // Placeholder for specifying the inputs you want to simulate collecting }; const result = await this.terminal.collectInputs(collectInputsParameters); if ('error' in result) { // Placeholder for handling exception } else { // Placeholder for handling collected inputs } ``` # iOS > This is a iOS for when terminal-sdk-platform is ios. View the full page at https://docs.stripe.com/terminal/features/collect-inputs?terminal-sdk-platform=ios. ## Collecter les données saisies - [collectInputs (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTerminal.html#/c:objc\(cs\)SCPTerminal\(im\)collectInputs:completion:) - [SDK iOS](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=ios) `4.4.0` et versions ultérieures Vous pouvez collecter des informations sur les clients même lorsque le lecteur intelligent [fonctionne hors ligne](https://docs.stripe.com/terminal/features/operate-offline/overview.md?reader-type=internet). Pour collecter des saisies à l’aide des lecteurs intelligents Terminal, appelez `collectInputs` avec le SDK Terminal, le SDK communique avec le lecteur pour afficher une interface utilisateur préconfigurée. Vous pouvez spécifier jusqu’à 5 entrées à la fois, et le lecteur les collecte dans l’ordre. Une fois que le client a saisi ses données, le SDK renvoie les données collectées avec un rappel. #### Swift ```swift let signatureInput = try SignatureInputBuilder(title: "Please sign") .setStripeDescription("Please sign if you agree to the terms and conditions") .setSkipButtonText("skip form") .setSubmitButtonText("Submit signature") .build() let firstSelectionButton = try SelectionButtonBuilder(style: .primary, text: "Yes", id: "yes_id") .build() let secondSelectionButton = try SelectionButtonBuilder(style: .secondary, text: "No", id: "no_id") .build() let firstToggle = try ToggleBuilder(defaultValue: .enabled) .setTitle("Sign up for promotional emails") .build() let selectionInput = try SelectionInputBuilder(title: "Choose an option") .setStripeDescription("Were you happy with our customer service?") .setRequired(true) .setSelectionButtons([firstSelectionButton, secondSelectionButton]) .setToggles([firstToggle]) .build() let collectInputsParams = try CollectInputsParametersBuilder( inputs: [signatureInput, selectionInput] ).build() let cancelable = Terminal.shared.collectInputs(collectInputsParams) { (collectInputsResult, error) in if let error = error { // Placeholder for handling error } else if let result = collectInputsResult { // Placeholder for handling collected inputs } } ``` ### Personnalisation Vous pouvez personnaliser l’apparence et le comportement de tous les types de saisie : - Définissez les saisies importantes comme `required` pour vous assurer qu’elles seront collectées. Le bouton **Ignorer** est masqué lorsque la saisie est obligatoire. - Fournissez un contexte à votre client en précisant le texte que vous souhaitez afficher sur l’écran du lecteur pour chaque saisie à l’aide des champs `title` et `description`. | Nom du champ | Nombre maximal de caractères | | --------------- | ---------------------------------------------------------------------------------------------------------------------- | | `title` | 40 | | `description` | 500 lorsqu’il est utilisé avec le formulaire `selection`, 100 lorsqu’il est utilisé avec tout autre type de formulaire | | `submit_button` | 30 | | `skip_button` | 14 | - Utilisez des sauts de ligne `` dans votre texte pour une meilleure mise en forme. - Ajoutez jusqu’à 4 boutons d’activation que les clients peuvent activer ou désactiver pour les options booléennes, les contrats ou les adhésions. ![Boutons d'activation dans l'e-mail et dans le formulaire de sélection](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-toggle.3183c0c14cc916374d588ba54ad34639.png) Formulaire d’e-mail et de sélection avec bouton d’activation | Nom du champ | Nombre maximal de caractères | | ------------- | ---------------------------------------------------------- | | `title` | 50, 25 lorsqu’il est utilisé avec le bouton de description | | `description` | 50, 25 lorsqu’il est utilisé avec le bouton de titre | - Pour les saisies de type `selection`, vous pouvez mettre l’accent ou non sur `choices` à l’aide du paramètre `style`. ![Styles des options du type de saisie « selection »](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-choice-style.dc4d2fcb98ee649a29bc43df806c114a.png) Styles principal et secondaire des options du type de saisie « selection » ## Interaction avec le client Lorsque le lecteur commence à collecter des données saisies, il affiche la première donnée de la liste. Une fois que le client a terminé toutes les saisies, le lecteur passe à un état transitoire pendant 3 secondes, en attendant une nouvelle demande. Si aucune requête n’est effectuée après 3 secondes, le lecteur revient à l’écran d’accueil. > Il vous incombe de connaître et de respecter toutes les lois et réglementations applicables régissant votre utilisation de cette fonctionnalité, et vous devez, dans le cadre d’une telle utilisation, obtenir, le cas échéant, l’ensemble des consentements, licences, droits et autorisations nécessaires. Si vous utilisez les données collectées par un lecteur intelligent Terminal ou les résultats affichés pour conclure des contrats avec vos clients ou leur adresser des notifications, il vous incombe de vous assurer de la validité juridique et du caractère exécutoire de ces contrats ou notifications. ## Recevoir les données saisies Lorsque toutes les entrées ont été collectées ou ignorées, le SDK Terminal renvoie les données collectées. - Pour les saisies de type signature, les données renvoyées sont une chaîne au format SVG. - Pour les saisies de type sélection, les données renvoyées sont les champs `text` et `id` du bouton sélectionné. - Pour les saisies de type numéro de téléphone, adresse e-mail, texte et chiffres, la valeur renvoyée est la chaîne de la réponse du client. - Si une saisie facultative est ignorée par le client, la valeur booléenne `skipped` est définie sur `true`. - Pour chaque bouton d’activation, l’option `enabled`, `disabled` ou `skipped` est renvoyée en fonction de l’index de la liste d’entrée des boutons d’activation. Le SDK Terminal renvoie une erreur en cas d’action annulée, d’encaissement expiré ou de toute autre erreur. ## Tester votre intégration Vous pouvez tester votre intégration à l’aide du lecteur de simulation du SDK. Avant de pouvoir tester la collecte des données saisies, vous devez d’abord vous [connecter à un lecteur Internet simulé](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=simulated&terminal-sdk-platform=ios). Le lecteur de simulation permet de simuler les scénarios suivants : - Collecte des données saisies réussie sans omettre aucune saisie - Collecte des données saisies réussie en ignorant toutes les saisies non requises - Échec de la collecte des données saisies en raison d’un délai d’attente Lors de la simulation d’une collecte réussie des entrées, le SDK renvoie une valeur codée en dur pour chaque entrée en fonction du type. #### Swift ```swift // Simulated internet reader must already be connected Terminal.shared.simulatorConfiguration.simulatedCollectInputsResult = SimulatedCollectInputsResultSucceeded( simulatedCollectInputsSkipBehavior: .none ) let collectInputsParams = try CollectInputsParametersBuilder( inputs: // Placeholder for specifying the inputs you want to simulate collecting ).build() let cancelable = Terminal.shared.collectInputs(collectInputsParams) { (collectInputsResult, error) in if let error = error { // Placeholder for handling error } else if let result = collectInputsResult { // Placeholder for handling collected inputs } } ``` # Android > This is a Android for when terminal-sdk-platform is android. View the full page at https://docs.stripe.com/terminal/features/collect-inputs?terminal-sdk-platform=android. ## Collecter les données saisies - [collectInputs (Android)](https://stripe.dev/stripe-terminal-android/core/com.stripe.stripeterminal/-terminal/collect-inputs.html) - [Trousse SDK pour Android](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=android) `4.3.0` et versions ultérieures Vous pouvez collecter des informations sur les clients même lorsque le lecteur intelligent [fonctionne hors ligne](https://docs.stripe.com/terminal/features/operate-offline/overview.md?reader-type=internet). Pour collecter des saisies à l’aide des lecteurs intelligents Terminal, appelez `collectInputs` avec le SDK Terminal, le SDK communique avec le lecteur pour afficher une interface utilisateur préconfigurée. Vous pouvez spécifier jusqu’à 5 entrées à la fois, et le lecteur les collecte dans l’ordre. Une fois que le client a saisi ses données, le SDK renvoie les données collectées avec un rappel. #### Kotlin ```kotlin val collectInputsParameters = CollectInputsParameters( inputs = listOf( SignatureInput.Builder(title = "Please sign") .setDescription("Please sign if you agree to the terms and conditions") .setSkipButtonText("skip") .setSubmitButtonText("Submit signature") .build(), SelectionInput.Builder(title = "Choose an option") .setDescription("Were you happy with our customer service?") .setRequired(true) .setSelectionButtons( listOf( SelectionButton( style = SelectionButtonStyle.PRIMARY, text = "Yes", id = "yes_id" ), SelectionButton( style = SelectionButtonStyle.SECONDARY, text = "No", id = "no_id" ) ) ) .setToggles( listOf( Toggle( title = "Sign up for promotional emails", defaultValue = ToggleValue.ENABLED ) ) ) .build() ) ) val cancelable = Terminal.getInstance().collectInputs( collectInputsParameters, object : CollectInputsResultCallback { override fun onSuccess(results: List) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } } ) ``` ### Personnalisation Vous pouvez personnaliser l’apparence et le comportement de tous les types de saisie : - Définissez les saisies importantes comme `required` pour vous assurer qu’elles seront collectées. Le bouton **Ignorer** est masqué lorsque la saisie est obligatoire. - Fournissez un contexte à votre client en précisant le texte que vous souhaitez afficher sur l’écran du lecteur pour chaque saisie à l’aide des champs `title` et `description`. | Nom du champ | Nombre maximal de caractères | | --------------- | ---------------------------------------------------------------------------------------------------------------------- | | `title` | 40 | | `description` | 500 lorsqu’il est utilisé avec le formulaire `selection`, 100 lorsqu’il est utilisé avec tout autre type de formulaire | | `submit_button` | 30 | | `skip_button` | 14 | - Utilisez des sauts de ligne `` dans votre texte pour une meilleure mise en forme. - Ajoutez jusqu’à 4 boutons d’activation que les clients peuvent activer ou désactiver pour les options booléennes, les contrats ou les adhésions. ![Boutons d'activation dans l'e-mail et dans le formulaire de sélection](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-toggle.3183c0c14cc916374d588ba54ad34639.png) Formulaire d’e-mail et de sélection avec bouton d’activation | Nom du champ | Nombre maximal de caractères | | ------------- | ---------------------------------------------------------- | | `title` | 50, 25 lorsqu’il est utilisé avec le bouton de description | | `description` | 50, 25 lorsqu’il est utilisé avec le bouton de titre | - Pour les saisies de type `selection`, vous pouvez mettre l’accent ou non sur `choices` à l’aide du paramètre `style`. ![Styles des options du type de saisie « selection »](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-choice-style.dc4d2fcb98ee649a29bc43df806c114a.png) Styles principal et secondaire des options du type de saisie « selection » ## Interaction avec le client Lorsque le lecteur commence à collecter des données saisies, il affiche la première donnée de la liste. Une fois que le client a terminé toutes les saisies, le lecteur passe à un état transitoire pendant 3 secondes, en attendant une nouvelle demande. Si aucune requête n’est effectuée après 3 secondes, le lecteur revient à l’écran d’accueil. > Il vous incombe de connaître et de respecter toutes les lois et réglementations applicables régissant votre utilisation de cette fonctionnalité, et vous devez, dans le cadre d’une telle utilisation, obtenir, le cas échéant, l’ensemble des consentements, licences, droits et autorisations nécessaires. Si vous utilisez les données collectées par un lecteur intelligent Terminal ou les résultats affichés pour conclure des contrats avec vos clients ou leur adresser des notifications, il vous incombe de vous assurer de la validité juridique et du caractère exécutoire de ces contrats ou notifications. ## Recevoir les données saisies Lorsque toutes les entrées ont été collectées ou ignorées, le SDK Terminal renvoie les données collectées. - Pour les saisies de type signature, les données renvoyées sont une chaîne au format SVG. - Pour les saisies de type sélection, les données renvoyées sont les champs `text` et `id` du bouton sélectionné. - Pour les saisies de type numéro de téléphone, adresse e-mail, texte et chiffres, la valeur renvoyée est la chaîne de la réponse du client. - Si une saisie facultative est ignorée par le client, la valeur booléenne `skipped` est définie sur `true`. - Pour chaque bouton d’activation, l’option `enabled`, `disabled` ou `skipped` est renvoyée en fonction de l’index de la liste d’entrée des boutons d’activation. Le SDK Terminal renvoie une erreur en cas d’action annulée, d’encaissement expiré ou de toute autre erreur. ## Tester votre intégration Vous pouvez tester votre intégration à l’aide du lecteur de simulation du SDK. Avant de pouvoir tester la collecte des données saisies, vous devez d’abord vous [connecter à un lecteur Internet simulé](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=simulated&terminal-sdk-platform=android). Le lecteur de simulation permet de simuler les scénarios suivants : - Collecte des données saisies réussie sans omettre aucune saisie - Collecte des données saisies réussie en ignorant toutes les saisies non requises - Échec de la collecte des données saisies en raison d’un délai d’attente Lors de la simulation d’une collecte réussie des entrées, le SDK renvoie une valeur codée en dur pour chaque entrée en fonction du type. #### Kotlin ```kotlin // Simulated internet reader must already be connected Terminal.getInstance().simulatorConfiguration = SimulatorConfiguration( simulatedCollectInputsResult = SimulatedCollectInputsResult.SimulatedCollectInputsResultSucceeded( simulatedCollectInputsSkipBehavior = SimulatedCollectInputsSkipBehavior.NONE, ) ) val collectInputsParameters = CollectInputsParameters( // Placeholder for specifying the inputs you want to simulate collecting ) val cancelable = Terminal.getInstance().collectInputs( collectInputsParameters, object : CollectInputsResultCallback { override fun onSuccess(results: List) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } } ) ``` # React Native > This is a React Native for when terminal-sdk-platform is react-native. View the full page at https://docs.stripe.com/terminal/features/collect-inputs?terminal-sdk-platform=react-native. ## Collecter les données saisies - [collectInputs (React Native)](https://stripe.dev/stripe-terminal-react-native/api-reference/interfaces/StripeTerminalSdkType.html#collectInputs) Vous pouvez collecter des informations sur les clients même lorsque le lecteur intelligent [fonctionne hors ligne](https://docs.stripe.com/terminal/features/operate-offline/overview.md?reader-type=internet). Pour collecter des saisies à l’aide des lecteurs intelligents Terminal, appelez `collectInputs` avec le SDK Terminal, le SDK communique avec le lecteur pour afficher une interface utilisateur préconfigurée. Vous pouvez spécifier jusqu’à 5 entrées à la fois, et le lecteur les collecte dans l’ordre. Une fois que le client a saisi ses données, le SDK renvoie les données collectées avec une promesse. ```tsx const { collectInputs } = useStripeTerminal(); const collectInputsParameters = { inputs: [ { formType: FormType.SIGNATURE, title: 'Please sign', required: false, description: 'Please sign if you agree to the terms and conditions', skipButtonText: 'skip', submitButtonText: 'Submit signature', }, { formType: FormType.SELECTION, title: 'Choose an option', required: true, description: 'Were you happy with our customer service?', selectionButtons: [ { style: SelectionButtonStyle.PRIMARY, text: 'Yes' }, { style: SelectionButtonStyle.SECONDARY, text: 'No' }, ], toggles: [ { title: 'Sign up for promotional emails', defaultValue: ToggleValue.ENABLED, }, ], }, ], }; const response = await collectInputs(collectInputsParameters); if (response.error) { // Placeholder for handling exception } // Placeholder for handling collected inputs ``` ### Personnalisation Vous pouvez personnaliser l’apparence et le comportement de tous les types de saisie : - Définissez les saisies importantes comme `required` pour vous assurer qu’elles seront collectées. Le bouton **Ignorer** est masqué lorsque la saisie est obligatoire. - Fournissez un contexte à votre client en précisant le texte que vous souhaitez afficher sur l’écran du lecteur pour chaque saisie à l’aide des champs `title` et `description`. | Nom du champ | Nombre maximal de caractères | | --------------- | ---------------------------------------------------------------------------------------------------------------------- | | `title` | 40 | | `description` | 500 lorsqu’il est utilisé avec le formulaire `selection`, 100 lorsqu’il est utilisé avec tout autre type de formulaire | | `submit_button` | 30 | | `skip_button` | 14 | - Utilisez des sauts de ligne `` dans votre texte pour une meilleure mise en forme. - Ajoutez jusqu’à 4 boutons d’activation que les clients peuvent activer ou désactiver pour les options booléennes, les contrats ou les adhésions. ![Boutons d'activation dans l'e-mail et dans le formulaire de sélection](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-toggle.3183c0c14cc916374d588ba54ad34639.png) Formulaire d’e-mail et de sélection avec bouton d’activation | Nom du champ | Nombre maximal de caractères | | ------------- | ---------------------------------------------------------- | | `title` | 50, 25 lorsqu’il est utilisé avec le bouton de description | | `description` | 50, 25 lorsqu’il est utilisé avec le bouton de titre | - Pour les saisies de type `selection`, vous pouvez mettre l’accent ou non sur `choices` à l’aide du paramètre `style`. ![Styles des options du type de saisie « selection »](https://b.stripecdn.com/docs-statics-srv/assets/collect-inputs-choice-style.dc4d2fcb98ee649a29bc43df806c114a.png) Styles principal et secondaire des options du type de saisie « selection » ## Interaction avec le client Lorsque le lecteur commence à collecter des données saisies, il affiche la première donnée de la liste. Une fois que le client a terminé toutes les saisies, le lecteur passe à un état transitoire pendant 3 secondes, en attendant une nouvelle demande. Si aucune requête n’est effectuée après 3 secondes, le lecteur revient à l’écran d’accueil. > Il vous incombe de connaître et de respecter toutes les lois et réglementations applicables régissant votre utilisation de cette fonctionnalité, et vous devez, dans le cadre d’une telle utilisation, obtenir, le cas échéant, l’ensemble des consentements, licences, droits et autorisations nécessaires. Si vous utilisez les données collectées par un lecteur intelligent Terminal ou les résultats affichés pour conclure des contrats avec vos clients ou leur adresser des notifications, il vous incombe de vous assurer de la validité juridique et du caractère exécutoire de ces contrats ou notifications. ## Recevoir les données saisies Lorsque toutes les entrées ont été collectées ou ignorées, le SDK Terminal renvoie les données collectées. - Pour les saisies de type signature, les données renvoyées sont une chaîne au format SVG. - Pour les saisies de type sélection, les données renvoyées sont les champs `text` et `id` du bouton sélectionné. - Pour les saisies de type numéro de téléphone, adresse e-mail, texte et chiffres, la valeur renvoyée est la chaîne de la réponse du client. - Si une saisie facultative est ignorée par le client, la valeur booléenne `skipped` est définie sur `true`. - Pour chaque bouton d’activation, l’option `enabled`, `disabled` ou `skipped` est renvoyée en fonction de l’index de la liste d’entrée des boutons d’activation. Le SDK Terminal renvoie une erreur en cas d’action annulée, d’encaissement expiré ou de toute autre erreur.