Identitätsnachweise Ihrer Nutzer/innen verifizieren
In diesem Leitfaden wird erläutert, wie Sie mit Stripe Identity Identitätsnachweise sicher erfassen und verifizieren können.
Bevor Sie loslegen
- Aktivieren Sie Ihr Konto.
- Füllen Sie Ihren Antrag für Stripe Identity aus.
- (Optional) Passen Sie Ihre Markeneinstellungen auf der Seite Branding-Einstellungen an.
Notiz
Um Zugriff auf das Identity React Native SDK zu erhalten, gehen Sie zu den Identitätseinstellungen und klicken auf Aktivieren.
Um die Identität Ihrer React Native-Nutzer/innen zu verifizieren. zeigen Sie in Ihrer Anwendung ein Verifizierungsformular an. In diesem Leitfaden erfahren Sie, wie Sie:
- Stripe einrichten.
- Einen Server-Endpoint hinzufügen.
- Das Verifizierungsformular anzeigen.
- Verifizierungsereignisse verarbeiten.
Die Schritte in diesem Leitfaden sind vollständig in der Beispiel-App und im Beispiel-Backend-Server implementiert.
EinrichtenServerseitigClientseitig
SDK installieren Client-side
Das React Native SDK ist Open Source, vollständig dokumentiert und mit Apps kompatibel, die iOS 13.0 oder Android 5.0 (API-Ebene 21) oder höher unterstützen. Intern nutzt es die nativen iOS und Android SDKs.
Installieren Sie den SDK, indem Sie Folgendes ausführen:
yarn add @stripe/stripe-identity-react-native
Notiz
Details zur aktuellen SDK-Version und vorigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung eines neuen Release eine Benachrichtigung zu erhalten, beobachten Sie Veröffentlichungen für das jeweilige Repository.
Führen Sie für iOS pod install
im Verzeichnis ios
aus, um sicherzustellen, dass Sie auch die erforderlichen nativen Abhängigkeiten installiert haben. Für Android sind keine zusätzlichen Schritte erforderlich.
Kamerazugriff für iOS einrichten Client-side
Das Stripe Identity iOS SDK erfordert Zugriff auf die Kamera des Geräts, um Ausweisdokumente zu erfassen. So aktivieren Sie Ihre App zum Anfordern von Kameraberechtigungen:
- Öffnen Sie die Datei Info.plist Ihres Projekts in Xcode.
- Fügen Sie den Schlüssel
NSCameraUsageDescription
hinzu. - Fügen Sie einen Zeichenfolgenwert hinzu, der Ihren Nutzer/innen den Grund für den erforderlichen Kamerazugriff erläutert. Beispiel:
Diese App verwendet Ihre Kamera, um ein Foto von Ihren Identitätsnachweisen zu machen.
Weitere Informationen zum Anfordern des Kamerazugriffs finden Sie in der Dokumentation von Apple.
Material Theme für Android einrichten Client-side
Das Stripe Identity Android SDK erfordert, dass die Hosting-Aktivität das Material Theme verwendet. So aktivieren Sie das Material Theme:
- Öffnen Sie die Datei
app/src/main/AndroidManifest.xml
Ihres Projekts. - Stellen Sie sicher, dass das auf die
application
angewendeteandroid:theme
ein untergeordnetes Element eines der Material Themes ist (zum BeispielTheme.MaterialComponents.DayNight
).
Weitere Details zum Material Theme finden Sie hier.
Stripe auf dem Server installieren Server-side
Registrieren Sie sich zunächst für ein Stripe-Konto.
Installieren Sie dann die Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:
Server-Endpoint hinzufügenServerseitig
VerificationSession erstellen
Eine VerificationSession ist die programmgesteuerte Darstellung der Verifizierung. Sie enthält Details zur Art der Verifizierung (z. B. welche Prüfung durchgeführt werden soll). Sie können das Feld verifizierte Ergebnisse erweitern, um Details zu den verifizierten Daten anzuzeigen.
Sie benötigen einen serverseitigen Endpoint zum Erstellen der VerificationSession. Die serverseitige Erstellung der VerificationSession
verhindert, dass böswillige Nutzer/innen die Verifizierungsoptionen außer Kraft setzen und Abwicklungskosten für Ihr Konto verursachen. Fügen Sie dem Endpoint eine Authentifizierung hinzu, indem Sie einen Verweis auf die Nutzer/innen in die Metadaten der Sitzung einschließen oder die Sitzungs-ID in Ihrer Datenbank speichern.
For security, don’t create a VerificationSession
object that’s directly accessible from the mobile client. Instead, your server provides the SDK with an ephemeral key — a short-lived API key with restricted access to the VerificationSession. You can think of an ephemeral key as a session, authorizing the SDK to retrieve and update a specific VerificationSession
object for the duration of the session.
Nach der erfolgreichen Erstellung einer VerificationSession
und eines temporären Schlüssels senden Sie die VerificationSession
-ID und den temporären Geheimschlüssel an den Client, um das Formular zum Hochladen von Dokumenten anzuzeigen.
Notiz
Eine laufende Implementierung dieses Endpoints für schnelle Tests ist auf Glitch verfügbar.
// Set your secret key. Remember to switch to your live secret key in production. // See your keys here: https://dashboard.stripe.com/apikeys const stripe = require('stripe')(
); // In the route handler for /create-verification-session: // Authenticate your user. // Create the session. const verificationSession = await stripe.identity.verificationSessions.create({ type: 'document', metadata: { user_id: '{{USER_ID}}', }, }); // Create an ephemeral key for the VerificationSession const ephemeralKey = await stripe.ephemeralKeys.create( {verification_session: verificationSession.id}, {apiVersion: '2024-04-10'} ); // Return only the ID and ephemeral key secret to the frontend. const verficationSessionId = verificationSession.id; const ephemeralKeySecret = ephemeralKey.secret;'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
Vorsicht
Der temporäre Geheimschlüssel ist an die VerificationSession
gebunden und ermöglicht es Ihrer App, sensible Verifizierungsinformationen wie Dokumente und Selfie-Bilddateien zu erfassen. Es ist einmalig verwendbar und läuft nach 1 Stunde ab. Speichern Sie ihn nicht, protokollieren Sie ihn nicht und betten Sie ihn nicht in eine URL ein und machen Sie ihn nicht für andere Personen als den/die Nutzer/in zugänglich. Stellen Sie sicher, dass Sie TLS für alle Endpoints aktiviert haben, die den geheimen temporären Schlüssel zurückgeben. Senden Sie nur den temporäre Geheimschlüssel an Ihre App, um zu vermeiden, dass die Verifizierungskonfiguration oder -ergebnisse preisgegeben werden.
Testen Sie Ihren Endpoint, indem Sie Ihren Webserver starten (z. B. localhost:4242
) und mit curl eine POST-Anfrage zur Erstellung einer VerificationSession senden:
curl -X POST -is "http://localhost:4242/create-verification-session" -d ""
Die Antwort in Ihrem Terminal sieht folgendermaßen aus:
HTTP/1.1 200 OK Content-Type: application/json { id: "vs_QdfQQ6xfGNJR7ogV6...", ephemeral_key_secret: "ek_YWNjdF8xRm..." }
Das Verifizierungsformular anzeigenClientseitig
Richten Sie eine Schaltfläche zum Anzeigen eines Verifizierungsformulars ein. Nachdem sie auf die Schaltfläche geklickt haben, können Ihre Nutzer/innen ein Bild ihres Reisepasses, Führerscheins oder Personalausweises erfassen und hochladen.
Bevor Sie loslegen, sollte Ihre Verifizierungsseite Folgendes enthalten:
- Erläuterungen für die Nutzer/innen zur Notwendigkeit der Identitätsprüfung.
- Eine Schaltfläche zum Verifizieren der Identität über die Nutzeroberfläche von Stripe.
Schaltfläche hinzufügen
Erstellen Sie zunächst eine Schaltflächenkomponente:
import React from 'react'; import { View, Button, } from 'react-native'; function VerifyScreen() { return ( <View> <Button title='Verify' /> </View> ); }
Stripe Identity SDK importieren
Hook useStripeIdentity
importieren:
import React from 'react'; import { View, Button, } from 'react-native'; import { useStripeIdentity } from "@stripe/stripe-identity-react-native"; function VerifyScreen() { return ( <View> <Button title='Verify' /> </View> ); }
Ereignis-Handler zur Schaltfläche „Verifizieren“ hinzufügen
Da Sie nun eine Schaltfläche und einen Endpoint zum Erstellen einer VerificationSession haben, können Sie die Schaltfläche so anpassen, dass das Formular zum Hochladen von Dokumenten nach dem Antippen angezeigt wird.
Fügen Sie einen Aufruf hinzu, um folgende Schritte auszuführen:
- Die
VerificationSession
-ID und den temporären Geheimschlüssel von Ihrem Endpoint abrufen. - Den Hook
useStripeIdentity
instanziieren, indem SiefetchOptions
mit Ihrem Markenlogo übergeben und dem/der Nutzer/in anzeigen. - Den
status
verarbeiten, um zu ermitteln, ob der/die Nutzer/in den Verifizierungsablauf abgeschlossen hat.
import React from 'react'; import { View, Button, Text, Image } from 'react-native'; import { useStripeIdentity } from "@stripe/stripe-identity-react-native"; // A square logo for your brand import logo from './assets/{{YOUR_BRAND_LOGO}}.png'; function VerifyScreen() { const fetchVerificationSessionParams = async () => { try { const data = await fetch(`${YOUR_SERVER_BASE_URL}/create-verification-session`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, }); const json = await data.json(); return json; } catch (e) { return {}; } }; const fetchOptions = async () => { const response = await fetchVerificationSessionParams(); return { sessionId: response.id, ephemeralKeySecret: response.ephemeral_key_secret, brandLogo: Image.resolveAssetSource(logo), }; }; const { status, present, loading } = useStripeIdentity(fetchOptions); const handlePress = React.useCallback(() => { present(); }, [present]); return ( <View> <Button title='Verify' disabled={loading} onPress={handlePress} /> <Text>Status: {status}</Text> </View> ); }
Verifizierungsformular testen
Testen Sie, ob die Schaltfläche „Verifizieren“ ein Formular zum Hochladen von Dokumenten anzeigt:
- Klicken Sie auf die Schaltfläche Identität verifizieren.
- Stellen Sie sicher, dass keine Fehlermeldungen angezeigt werden.
Wenn Ihre Integration nicht funktioniert:
- Legen Sie einen Haltepunkt an der Stelle fest, an der Sie die
VerificationSession
-ID und den temporären Geheimschlüssel abrufen. - Stellen Sie sicher, dass keine Netzwerkfehler vorhanden sind und dass der Endpoint eine
VerificationSession
-ID und einen temporären Geheimschlüssel zurückgibt.
Verifizierungsereignisse verarbeiten
Dokumentprüfungen erfolgen asynchron, d. h., die Ergebnisse der Prüfung sind nicht sofort verfügbar. Die Prüfung eines Identitätsnachweises dauert in der Regel 1 bis 3 Minuten. Sobald die Verarbeitung abgeschlossen ist, ändert sich der Status der VerificationSession von processing
in verified
.
Stripe übermittelt die folgenden Ereignisse, wenn sich der Status einer Sitzung ändert:
Ereignisname | Beschreibung | Nächste Schritte |
---|---|---|
identity.verification_session.verified | Die Verarbeitung aller Verifizierungsprüfungen ist abgeschlossen und alle wurden erfolgreich verifiziert. | Lösen Sie relevante Aktionen in Ihrer Anwendung aus. |
identity.verification_session.requires_input | Die Verarbeitung aller Verifizierungsprüfungen ist abgeschlossen und mindestens eine dieser Prüfungen ist fehlgeschlagen. | Lösen Sie relevante Aktionen in Ihrer Anwendung aus und ermöglichen Sie Ihren Nutzer/innen, die Verifizierung zu wiederholen. |
Verwenden Sie einen Webhook-Handler, um diese Ereignisse zu empfangen und Aktionen wie das Senden einer E-Mail zur Bestätigung, das Aktualisieren der Verifizierungsergebnisse in Ihrer Datenbank oder das Abschließen eines Onboarding-Schritts zu automatisieren. Sie können die Verifizierungsereignisse auch im Dashboard anzeigen.
Ereignisse empfangen und Geschäftsaktionen ausführen
Mit Code
Erstellen Sie einen Webhook-Handler, um Ereignisse zu überwachen und benutzerdefinierte asynchrone Verifizierungsabläufe zu erstellen. Mit der Stripe-CLI können Sie Ihre Webhook-Integration lokal testen und Fehler beheben.
Nutzerdefinierten Webhook erstellen
Ohne Code
Verwenden Sie das Dashboard, um alle Ihre Verifizierungen anzuzeigen, die erfassten Daten zu prüfen und fehlgeschlagene Verifizierungen nachvollziehen zu können.