Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
Démarrer une intégration
Produits
Global Payouts
Capital
Émission de cartes
    Présentation
    Fonctionnement d'Issuing
    Disponibilité mondiale
    Gérer la fraude
    Cartes bancaires
    Choisir votre type de carte
    Cartes virtuelles
    Émettre des cartes virtuelles
    Cartes physiques
    Gérer des cartes bancaires
    Portefeuilles électroniques
    Cartes de remplacement
    Programmes de cartes
    Gestion de programme
    Issuing pour les prestataires de paiement
    Personnaliser votre programme de cartes
    Ajoutez des fonds à votre programme de cartes
    Credit Consumer Issuing
    Contrôles
    Contrôles des dépenses
    Outils antifraude avancés
    3DS
    Étapes de détection de la fraude
    Autorisations en temps réel
    Gestion des PIN
    Issuing et Elements
    Gestion des tokens
    L'obtention de financements
    Solde
    Post-financer votre intégration à Stripe
    Post-financer votre intégration avec les réserves dynamiques
    Achats
    Autorisations
    Transactions
    Litiges
    Tests
    Catégories de marchands
    Utilisation des distributeurs automatiques
    Issuing avec Connect
    Configurer une intégration pour Issuing et Connect
    Mettre à jour les Conditions d'utilisation du service
    Financement Connect
    Comptes connectés, cartes et titulaires de carte
    Intégrer l'interface utilisateur pour la gestion des cartes
    Crédit
    Présentation
    Configurer des comptes connectés
    Gérer les conditions de crédit
    Enregistrer d'autres décisions de crédit et gérer les avis de décision défavorable (AAN)
    Communiquer les données réglementaires requises pour les décisions de crédit
    Gérer les obligations des comptes
    Tester une intégration de crédit
    Informations complémentaires
    Choisir un type de titulaire de carte
    Service de support dédié à Issuing et Treasury
    Liste de surveillance Issuing
    Recommandations pour le marketing (Europe/Royaume-Uni)
    Recommandations pour la conformité des produits et du marketing (US)
Treasury
Gérer vos fonds
AccueilGestion de fondsIssuing cards

Utilisation des Elements Issuing

Découvrez comment afficher les informations de carte bancaire dans votre application Web, conformément à la norme PCI.

Copier la page

Stripe.js fournit une bibliothèque JavaScript côté navigateur qui vous permet d’afficher les données sensibles de vos cartes Issuing sur le Web en conformité avec les normes PCI. Les données sensibles sont affichées dans des iframes hébergés par Stripe et ne transitent jamais sur vos serveurs.

Remarque

Stripe.js collecte des données supplémentaires pour protéger ses utilisateurs. En savoir plus sur la façon dont Stripe collecte des données pour la détection avancée de la fraude.

Authentification par clé éphémère

Stripe.js utilise des clés éphémères pour récupérer les informations de carte bancaire en toute sécurité à partir de l’API Stripe sans révéler publiquement vos clés secrètes. Pour ce faire, vous devez effectuer une partie de l’échange de clés éphémères côté serveur.

Le processus de création d’une clé éphémère commence dans le navigateur par la création d’un nonce à l’aide de Stripe.js. Un nonce est un token à usage unique qui crée une clé éphémère. Ce nonce est envoyé à votre serveur, où vous l’échangez contre une clé éphémère en appelant l’API Stripe (à l’aide de votre clé secrète).

Après avoir créé une clé éphémère côté serveur, renvoyez-la au navigateur pour que Stripe.js puisse l’utiliser.

Créer un endpoint sécurisé
Côté serveur

La première étape de l’intégration à Issuing Elements consiste à créer un endpoint sécurisé côté serveur afin de générer des clés éphémères pour la carte que vous souhaitez afficher. Votre intégration Web Issuing Elements appelle cet endpoint.

Voici comment implémenter un endpoint de création de clés éphémères dans un framework d’applications Web dans différents langages :

server.js
Node
// This example sets up an endpoint using the Express framework. // Watch this video to get started: https://youtu.be/rPR2aJ6XnAc const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: true })); const stripe = require('stripe')(
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
); app.post('/ephemeral-keys', async (request, response) => { const { card_id, nonce } = request.body; const ephemeralKey = await stripe.ephemeralKeys.create({ nonce: nonce, issuing_card: card_id, }, { apiVersion: '2025-05-28.basil', }); response.json({ ephemeralKeySecret: ephemeralKey.secret, }); });

Remarque

Vous devez spécifier la version de l’API lors de la création de clés éphémères. La version actuellement requise est la 2020-03-02. Vous devez également transmettre un nonce de clé éphémère, que vous pouvez créer dans votre intégration web.

Intégration à l'API Web
Côté client

Tout d’abord, ajoutez Stripe.js à votre page. Pour en savoir plus sur la configuration de Stripe.js, consultez la rubrique sur l’intégration de Stripe.js.

Créez une instance Stripe et un nonce de clé éphémère pour la carte que vous souhaitez récupérer à l’aide de stripe.createEphemeralKeyNonce. Utilisez le nonce pour récupérer la clé éphémère en appelant l’endpoint côté serveur que vous avez créé :

const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Initialize Elements which you'll need later const elements = stripe.elements(); // Use Stripe.js to create a nonce const cardId = 'ic_1ITi6XKYfU8ZP6raDAXem8ql'; const nonceResult = await stripe.createEphemeralKeyNonce({ issuingCard: cardId, }); const nonce = nonceResult.nonce; // Call your ephemeral key creation endpoint to fetch the ephemeral key const ephemeralKeyResult = await fetch('/ephemeral-keys', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ card_id: cardId, nonce: nonce, }) }); const ephemeralKeyResponse = await ephemeralKeyResult.json(); const ephemeralKeySecret = ephemeralKeyResponse.ephemeralKeySecret;

Maintenant que vous avez une clé éphémère, vous pouvez afficher les informations sensibles de votre carte bancaire. Pour ce faire, vous pouvez utiliser l’un des composants Elements suivants et réutiliser la même paire de nonce et clé éphémère pour plusieurs Elements sur la même page :

ElementNomDisponibilité
Numéro (PAN)issuingCardNumberDisplayCartes virtuelles uniquement
CVCissuingCardCvcDisplayCartes virtuelles uniquement
Date d’expirationissuingCardExpiryDisplayCartes virtuelles uniquement
PINissuingCardPinDisplayCartes physiques uniquement

Chaque composant Element prend la configuration suivante :

NomTypeUtilisation
styleObjet StyleGardez à l’esprit que certaines variantes, pseudo-classes et propriétés sont destinées aux Elements de saisie et ne s’appliqueront pas à ces Elements. ::placeholder est un exemple de pseudo-classe destinée uniquement à la saisie.
issuingCardstringL’ID de la carte (par exemple, ic_abc123)
noncestringVotre nonce de clé éphémère
ephemeralKeySecretstringLe composant secret de votre clé éphémère

Remarque

Si vous décidez d’utiliser issuingCardPinDisplay, vous devez implémenter des méthodes appropriées pour vous assurer que l’accès est limité à vos utilisateurs autorisés. Vous devez notamment appliquer l’authentification à deux facteurs (2FA) avant de fournir l’accès à une page à l’aide de issuingCardPinDisplay. Si Stripe estime que vous n’avez pas mis en place de mesures de sécurité suffisantes, nous pourrons suspendre votre accès à cet Element.

Voici un exemple d’affichage de l’un de ces Elements à l’aide de la paire nonce et clé éphémère créée dans l’exemple ci-dessus :

const number = elements.create('issuingCardNumberDisplay', { issuingCard: cardId, nonce: nonce, ephemeralKeySecret: ephemeralKeySecret, style: { base: { color: '#fff', fontSize: '16px' }, }, }); number.mount('#card-number');

Ajout d’un bouton de copie

Outre les « Elements d’affichage des données de carte » dont nous avons déjà parlé, nous fournissons également un Element issuingCardCopyButton. Ce dernier génère, à partir d’un argument toCopy, un bouton « Copier dans le presse-papiers » qui prend la place de son parent <div>. Ce bouton intercepte tous les événements de clics grâce à un gestionnaire de clics qui reprend les données de carte correspondantes spécifiées lors de l’initialisation et qui les copie dans le presse-papiers.

Ainsi, vous pouvez afficher des boutons « Copier dans le presse-papiers » à côté du numéro, de la date d’expiration et du cvc de la carte bancaire, ce qui évite aux titulaires de carte d’avoir à copier manuellement les données de leur carte. Nous limitons la fonctionnalité de copie à l’<iframe>, conformément aux exigences PCI de Stripe.

L’Element issuingCardCopyButton présente la configuration suivante :

NomTypeUtilisation
styleObjet StyleGardez à l’esprit que certaines variantes, pseudo-classes et propriétés sont destinées aux Elements de saisie et ne s’appliqueront pas à ces Elements. ::placeholder est un exemple de pseudo-classe destinée uniquement à la saisie.
toCopy'expiry' ou 'cvc' ou 'number' ou 'pin'

Voici un exemple d’utilisation de ce composant :

const cardNumber = elements.create('issuingCardNumberDisplay', { issuingCard: cardId, nonce: nonce, ephemeralKeySecret: ephemeralKeySecret, }); cardNumber.mount('#card-number'); const cardNumberCopy = elements.create('issuingCardCopyButton', { toCopy: 'number', style: { base: { fontSize: '12px', lineHeight: '24px', }, }, }); cardNumberCopy.mount('#card-number-copy');

Si votre bouton ne réagit pas comme il se doit aux clics, veillez à bien aligner l’iframe sur votre bouton. Vous pouvez personnaliser à votre guise l’image et le conteneur <div> dans vos feuilles de style.

#card-number-copy { height: 24px; width: 24px; position: relative; background-repeat: no-repeat; background-position: center; background-size: contain; background-image: url('data:image/svg+xml;base64,...'); }

Pour finir, offrez à vos utilisateurs l’option « commentaire post-clic ». Pour ce faire, utilisez l’événement de clic du composant Element issuingCardCopyButton. Il est possible qu’une nouvelle icône s’affiche temporairement, comme illustré ci-dessous.

#card-number-copy-success { display: none; height: 24px; width: 24px; background-image: url('data:image/svg+xml;base64,...'); background-size: 100%; }
// Example of hiding, replacing, and re-showing icons upon click const timeout = (ms) => { return new Promise((resolve) => setTimeout(resolve, ms)); }; const hideAndShowSuccess = (iconElementId, successIconElementId) => { const el = document.getElementById(iconElementId); el.style.display = 'none'; const elSuccess = document.getElementById(successIconElementId); elSuccess.style.display = 'block'; timeout(2000).then(() => { elSuccess.style.display = 'none'; el.style.display = 'block'; }); }; cardNumberCopy.on('click', () => { hideAndShowSuccess('card-number-copy', 'card-number-copy-success'); });

Informations supplémentaires

Les champs PCI (tels que le numéro) de l’objet Card renvoyé sont entièrement supprimés de la charge utile result.issuingCard.

En plus de .mount() dans l’exemple ci-dessus, les Elements prennent également en charge les méthodes suivantes :

  • .destroy()
  • .unmount()
  • .update({style})

Issuing Elements et applications natives

Issuing Elements ne prend pas directement en charge les plateformes d’applications natives telles qu’iOS, Android ou React Native.

Pour afficher les informations sensibles des cartes avec Issuing Elements dans votre application native, utilisez une vue Web. Créez une intégration Web sur vos serveurs en suivant ce guide, puis faites pointer l’URL d’une vue Web vers cette intégration. Pour en savoir plus sur l’implémentation des vues Web pour les applications natives, consultez ces ressources externes :

  • iOS et iPadOS : WKWebView
  • Android : WebView
  • React Native : react-native-webview
  • Flutter : webview-flutter
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc