Utilisation des Elements Issuing
Découvrez comment afficher les informations de carte bancaire dans votre application Web, conformément à la norme PCI.
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).
Créez une clé éphémère côté serveur, puis transmettez-la au navigateur pour que Stripe.js puissiez 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 :
Important
Votre point de terminaison est chargé de s’authentifier que l’utilisateur demandeur est autorisé à voir les détails de la carte demandée. Assurez-vous que votre point de terminaison n’émet des clés éphémères qu’aux utilisateurs de la carte demandée.
Remarque
Vous devez spécifier la version de l’API lors de la création de clés éphémères. Actuellement, la version minimale requise est 2020-03-02
. Vous devez également passer une clé éphémère nonce, que vous créez dans votre intégration web.
Intégration à l'API WebCô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(
); // 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. // Note that the ephemeral key expires after 15 minutes. const ephemeralKeyResult = await fetch('/ephemeral-keys', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': /* Important: this endpoint must be authenticated. */ }, body: JSON.stringify({ card_id: cardId, nonce: nonce, }) }); const ephemeralKeyResponse = await ephemeralKeyResult.json(); const ephemeralKeySecret = ephemeralKeyResponse.ephemeralKeySecret;'pk_test_TYooMQauvdEDq54NiTphI7jx'
Actualiser la clé éphémère toutes les 15 minutes
Les clés éphémères pour Issuing Elements expirent au bout de 15 minutes. Appelez votre endpoint back-end toutes les 15 minutes pendant une session utilisateur pour actualiser la clé éphémère et éviter une authentification obsolète.
Après la régénération, utilisez la méthode update({.
de l’Element pour envoyer une nouvelle clé éphémère et un nonce.
Affichage d’un élémentCôté client
Maintenant que vous disposez d’une clé éphémère, vous pouvez afficher un élément d’émission.
Tous les éléments sont créés avec le modèle suivant :
const element = elements.create(elementName, options); element.mount("#my-parent-container");
Éléments de délivrance disponibles
Element | Nom | Disponibilité |
---|---|---|
Numéro (PAN) | issuingCardNumberDisplay | Cartes virtuelles uniquement |
CVC | issuingCardCvcDisplay | Cartes virtuelles uniquement |
Date d’expiration | issuingCardExpiryDisplay | Cartes virtuelles uniquement |
PIN | issuingCardPinDisplay | Cartes physiques uniquement |
Bouton Copier | issuingCardCopyButton | N’importe quelle carte |
Chaque type d’élément a des options et des fonctions différentes. Sélectionnez le type d’élément sur lequel vous souhaitez en savoir plus :
Exigences en matière de sécurité
si vous choisissez d’utiliser issuingCardPinDisplay
, vous devez implémenter des mesures pour vous assurer que seuls les utilisateurs autorisés peuvent y accéder. plus précisément, vous devez appliquer l’authentification à deux facteurs (2fa) avant d’accorder l’accès à toute page qui utilise issuingCardPinDisplay
. si Stripe détermine que vos mesures de sécurité sont inadéquates, nous pouvons suspendre votre accès à ce composant Element.
Remarque
Contrairement à nos SDK mobiles, Issuing Elements ne fournit pas d’intégration avec des vérifications. Vous devez implémenter l’authentification à deux facteurs afin d’afficher les codes PIN de carte via Issuing Elements.
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.
.
In addition to .
in the previous examples, the Elements also support the following methods:
.
destroy() .
unmount() - '
.
update(options)
Issuing Elements et applications natives
Émission Elements ne directement prendre en charge les plateformes formulaire d’inscription 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