Issuing Elements verwenden
Erfahren Sie, wie Sie Kartendaten auf PCI-konforme Weise in Ihrer Webanwendung anzeigen.
Stripe.js enthält eine browserseitige JavaScript-Bibliothek, mit der Sie die sensiblen Daten Ihrer Issuing-Karten im Web unter Einhaltung der PCI-Anforderungen anzeigen können. Die sensiblen Daten werden in von Stripe gehosteten iFrames gerendert und gelangen nicht auf Ihre Server.
Notiz
Stripe.js erfasst zusätzliche Daten zum Schutz unserer Nutzer/innen. Erfahren Sie mehr darüber, wie Stripe diese Daten für die erweiterte Betrugserkennung erhebt.
Authentifizierung mit temporären Schlüsseln
Stripe.js verwendet temporäre Schlüssel, um Karteninformationen sicher von der Stripe -API abzurufen, ohne Ihre geheimen Schlüssel öffentlich zugänglich zu machen. Um dies einzurichten, müssen Sie einen Teil des temporären Schlüsselaustauschs auf dem Server durchführen.
Der Erstellungsprozess eines temporären Schlüssels beginnt im Browser, indem eine Nonce mit Stripe.js erstellt wird. Eine Nonce ist ein einmalig verwendbares Token, das einen temporären Schlüssel erstellt. Diese Nonce wird an Ihren Server gesendet, wo Sie sie durch Aufrufen der Stripe -API (mithilfe Ihres geheimen Schlüssels) gegen einen temporären Schlüssel eintauschen.
Nachdem Sie auf der Server-Seite einen temporären Schlüssel erstellt haben, übergeben Sie ihn zur Verwendung mit Stripe.js zurück an den Browser.
Sicheren Endpoint erstellenServerseitig
Der erste Schritt bei der Integration mit Issuing Elements besteht darin, einen sicheren, serverseitigen Endpoint zu erstellen, um temporäre Schlüssel für die Karte zu generieren, die Sie anzeigen möchten. Ihre Issuing Elements-Webintegration ruft diesen Endpoint auf.
So können Sie einen Endpoint zur Erstellung temporärer Schlüssel im Webanwendungs-Framework in verschiedenen Sprachen implementieren:
Wichtig
Ihr Endpoint ist dafür verantwortlich, zu authentifizieren, dass der/die anfordernde Nutzer/in berechtigt ist, die Details der angeforderten Karte anzuzeigen. Stellen Sie sicher, dass Ihr Endpoint nur temporäre Schlüssel an Nutzer/innen der angeforderten Karte ausgibt.
Notiz
Sie müssen die API-Version beim Erstellen von temporären Schlüsseln angeben. Derzeit ist die erforderliche Version 2020-03-02
. Außerdem müssen Sie eine temporäre Key-Nonce übergeben, die Sie in Ihrer Web-Integration erstellen.
API-Integration auf WebClientseitig
Fügen Sie zunächst Stripe.js in Ihre Seite ein. Weitere Informationen zum Einrichten von Stripe.js finden Sie unter Einbindung von Stripe.js.
Erstellen Sie eine Stripe
-Instanz und eine temporäre Schlüsselnonce für die Karte, die Sie abrufen möchten, indem Sie stripe.createEphemeralKeyNonce verwenden. Verwenden Sie die Nonce, um den temporären Schlüssel abzurufen, indem Sie den von Ihnen erstellten serverseitigen Endpoint aufrufen:
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'
Aktualisieren Sie den Ephemeralschlüssel alle 15 Minuten
Ephemeralschlüssel für Issuing-Elemente laufen nach 15 Minuten ab. Rufen Sie Ihren Backend-Endpoint alle 15 Minuten während einer Nutzer-Sitzung auf, um den Ephemeralschlüssel zu aktualisieren und eine veraltete Authentifizierung zu verhindern.
Nach der Neugenerierung verwenden Sie die Methode update({.
des Elements, um einen neuen Ephemeralschlüssel und Nonce zu senden.
Element anzeigenClientseitig
Nachdem Sie nun einen temporären Schlüssel haben, können Sie ein Issuing-Element anzeigen.
Alle Elements werden mit dem folgenden Muster erstellt:
const element = elements.create(elementName, options); element.mount("#my-parent-container");
Verfügbare Issuing-Elements
Element | Name | Verfügbarkeit |
---|---|---|
Number (PAN) | issuingCardNumberDisplay | Nur virtuelle Karten |
Prüfziffer/CVC | issuingCardCvcDisplay | Nur virtuelle Karten |
Ablaufdatum | issuingCardExpiryDisplay | Nur virtuelle Karten |
PIN | issuingCardPinDisplay | Nur physische Karten |
Copy-Schaltfläche | issuingCardCopyButton | Jede Karte |
Jedes Element verfügt über unterschiedliche Optionen und Funktionen. Wählen Sie aus, über welches Element Sie mehr erfahren möchten:
Sicherheitsanforderungen
Wenn Sie issuingCardPinDisplay
verwenden, müssen Sie Maßnahmen ergreifen, um sicherzustellen, dass nur autorisierte Nutzer/innen darauf zugreifen können. Insbesondere müssen Sie eine Zwei-Faktor-Authentifizierung (2FA) anwenden, bevor Sie Zugriff auf eine Seite gewähren, die issuingCardPinDisplay
verwendet. Wenn Stripe feststellt, dass Ihre Sicherheitsmaßnahmen unzureichend sind, können wir Ihren Zugang zu diesem Element sperren.
Notiz
Im Gegensatz zu unseren mobilen SDKs bietet Issuing Elements keine Integration mit verifications. Sie müssen eine Zwei-Faktor-Authentifizierung implementieren, um Karten-PINs über Issuing Elements anzeigen zu können.
Zusätzliche Informationen
Das zurückgegebene Kartenobjekt verfügt über PCI-Felder (z. B. die Nummer), die vollständig aus der Nutzlast result.
entfernt wurden.
Zusätzlich zur Methode .
aus den vorherigen Beispielen unterstützen die Elements auch folgende Methoden:
.
destroy() .
unmount() .
update(options)
Issuing Elements und native Anwendungen
Issuing Elements unterstützt keine nativen Anwendungsplattformen wie iOS, Android oder React Native direkt.
Verwenden Sie eine Webansicht, um sensible Kartendaten mit Issuing Elements in Ihrer nativen App anzuzeigen. Erstellen Sie eine Webintegration auf Ihren Servern, indem Sie diesen Leitfaden befolgen, und verweisen Sie dann die URL einer Webansicht auf diese Integration. Informationen zur Implementierung von Webansichten für native Apps finden Sie in diesen externen Ressourcen:
- iOS und iPadOS: WKWebView
- Android: WebView
- React Native: react-native-webview
- Flutter: webview-flutter