Ajoutez votre carte bancaire par contact au composant Payment ElementVersion bêta privée
Permettez aux clients d’ajouter leur carte bancaire en la posant sur leur appareil.
Vous souhaitez accéder à la fonctionnalité d’ajout de carte bancaire par simple contact ?
La fonctionnalité d’ajout de carte par contact est en version bêta privée. Partagez votre adresse e-mail pour demander l’accès.
Remarque
La fonctionnalité d’ajout de carte bancaire par contact est disponible uniquement sur Android.
La fonctionnalité d’ajout de carte bancaire par contact pour Payment Element permet aux clients d’ajouter une carte à votre application en présentant une carte physique sur un appareil Android compatible et équipé de la technologie NFC. Cela réduit la saisie manuelle des informations de carte et les frictions lors du paiement, tout en garantissant une authentification sécurisée de type carte présente. Après le contact, les clients peuvent enregistrer leur carte pour de futurs achats et éventuellement s’inscrire à Link. Vous pouvez utiliser cette fonctionnalité dans votre intégration existante du composant Payment Element Mobile pour permettre l’enregistrement de cartes bancaires pour de futurs paiements.
Ce guide explique comment permettre aux clients d’ajouter leur carte bancaire par simple contact via votre intégration de paiement dans l’application.
Avant de commencer
- Créez un compte Stripe ou connectez-vous.
- Suivez les étapes décrites dans Accepter les paiements dans l’application pour l’intégrer à Payment Element.
- Commandez une carte bancaire de test physique pour essayer d’ajouter une carte bancaire par contact en mode test.
Initialiser le SDK Terminal
Pour permettre aux clients d’ajouter leur carte bancaire par contact dans un Payment Element, ajoutez les dépendances Stripe Terminal suivantes à votre projet :
La fonctionnalité d’ajout de carte bancaire par contact utilise l’infrastructure Terminal Tap to Pay pour fonctionner dans un processus dédié, ce qui rend les transactions plus sécurisées. Dans ce processus, nous créons une deuxième instance de votre Application. Pour éviter des erreurs inattendues liées à l’exécution de votre code dans ce processus, vous pouvez ignorer l’initialisation dans votre Application en vérifiant TapToPay.. En savoir plus sur l’infrastructure Tap to Pay.
// Substitute with your application name, and remember to keep it // the same as your AndroidManifest.xml class StripeApplication : Application() { override fun onCreate() { super.onCreate() // Skip initialization if running in the TTPA process. if (TapToPay.isInTapToPayProcess()) return // For example, this will be skipped. TerminalApplicationDelegate.onCreate(this) } }
Ajouter un endpoint
Cette intégration utilise les objets de l’API Stripe suivants :
- Un SetupIntent est un objet qui représente votre intention de configurer le moyen de paiement d’un client pour des paiements ultérieurs. Les moyens de paiement que les clients voient pendant le processus de paiement sont également inclus dans le SetupIntent. Vous pouvez laisser Stripe récupérer automatiquement les moyens de paiement depuis les paramètres de votre Dashboard, ou les définir manuellement.
- Un
Customerest un objet que vous utilisez pour configurer des paiements ultérieurs en lui rattachant un moyen de paiement. Créez un objetCustomerlorsque votre client crée un compte auprès de votre entreprise. Si votre client effectue un paiement en tant qu’invité, vous pouvez créer un objetCustomeravant le paiement et l’associer ultérieurement à votre propre représentation interne du compte du client.
Pour des raisons de sécurité, votre application ne peut pas créer ces objets. À la place, ajoutez sur votre serveur un endpoint qui :
- Récupère le client
- Crée un SetupIntent avec le type de moyen de paiement
card_et l’identifiant du Customer. Si le SetupIntent n’a pas pour type de moyen de paiementpresent card_, la carte bancaire posée ne sera pas enregistrée sur le compte du client.present - Renvoie la clé secrète du client SetupIntent à votre application.
// This example sets up an endpoint using the Express framework. const stripe = require('stripe')('{{SANDBOX-API-KEY}}'); app.post('/create-card-present-setup-intent', async (req, res) => { const setupIntent = await stripe.setupIntents.create({ // Use an existing customer ID customer: req.customer.id, payment_method_types: ['card_present'], }); res.json({ setupIntent: setupIntent.client_secret, }) });
Implémentez votre rappel de création de SetupIntent
Pour permettre aux clients d’ajouter leur carte bancaire par un simple contact dans un Payment Element, vous devez implémenter un rappel de création de SetupIntent pour l’ajout par contact (tap to add) en utilisant createCardPresentSetupIntentCallback.
Une fois que votre client a effectué un paiement tap to pay avec sa carte, nous associons le moyen de paiement au SetupIntent créé depuis votre implémentation et enregistrons la carte bancaire pour une utilisation future.
val embeddedBuilder = EmbeddedPaymentElement.Builder( createIntentCallback = { paymentMethod, canSave -> // Create intent on call }, resultCallback = { result -> // Handle result }, ) .createCardPresentSetupIntent { val response = server.createCardPresentSetupIntent(customerId) return if (response.isSuccess) { Result.success(response.body!!.clientSecret) } else { Result.failure(response.exception) } } val embeddedPaymentElement = rememberEmbeddedPaymentElement(embeddedBuilder)
Tester votre intégration
Vous pouvez tester l’ajout de votre carte par contact en utilisant un appareil pris en charge par l’infrastructure Tap to Pay.
- Pour utiliser le lecteur de simulation, utilisez une clé API d’environnement de test et une version de votre application qui peut être déboguée.
- Pour utiliser le lecteur NFC réel, utilisez une version de production de votre application avec des cartes de test physiques à approcher de votre appareil.