Einfach und sicher
100 % Kostenlos
Entwicklerdokumentation | API & Integration Guide – Standardimplementierung
Implementierungsbeispiele
Go.cam bietet zwei Standard-Implementierungsbeispiele, verfügbar in PHP und JavaScript.
Verifizierung über die Redirect-Bibliothek
Diese Implementierung erzeugt eine Go.cam-Verifizierungs-URL auf Grundlage Ihrer Zugriffsschlüssel.
Sie kann im Standalone-Modus verwendet werden, wenn die Altersverifizierung in einem neuen Browserfenster oder per Weiterleitung ausgeführt werden soll.
Diese Methode ist so konzipiert, dass sie unkompliziert und leicht nachvollziehbar ist. Nachfolgend finden Sie eine Schritt-für-Schritt-Erklärung.
Tipp: Eine Beispielimplementierung kann aus Ihrem Go.cam-Konto heruntergeladen werden.
Schritt 1: Die PHP SDK einbinden
require_once 'avsPhpSdkV1.php';
Schritt 2: Die SDK initialisieren
Rufen Sie die erforderlichen Zugangsdaten aus Ihrem Go.cam-Konto ab und bearbeiten Sie die Datei config.php.
$config['partnerId'] = 0;
$config['cipherKey'] = '';
$config['hmacKey'] = '';
Initialisieren Sie die SDK-Klasse in der Datei index.php.
$avsInstance = new AvsPhpSdkV1(
$config['partnerId'],
$config['cipherKey'],
$config['hmacKey']
);
Schritt 3: (Optional) Sprache festlegen
Standardmäßig wird die Testseite auf Englisch angezeigt. Unterstützte Sprachen:
Englisch, Französisch, Deutsch, Niederländisch, Italienisch, Portugiesisch, Spanisch
$avsInstance->setLanguage(AvsPhpSdkV1::LANGUAGE_EN);
Schritt 4: Request-Payload definieren
Go.cam verwendet AES-256-CBC-Verschlüsselung für eine sichere Kommunikation.
Für jede Sitzung müssen Sie die Payload definieren, die verpflichtende und optionale Parameter enthalten kann.
Beispiel:
$avsInstance->fillRequest([
'userData' => [
// verpflichtend: interne Benutzer-ID des Partners, wird für das Tracking des Benutzers verwendet
'userId' => $userId,
// optional: benutzerdefinierte Daten, die der Partner in diese Verifizierungssitzung einfügen möchte
'someCustomData' => true,
// optional: benutzerdefinierte Farben für die Oberfläche des Go.cam-Verifizierungsprozesses
'colorConfig' => [
'body' => [
'background' => $colorConfigBodyBackground,
'foreground' => $colorConfigBodyForeground,
'button' => [
'background' => $colorConfigButtonBackground,
'foreground' => $colorConfigButtonForeground,
'foregroundCallToAction' => $colorConfigButtonForegroundCTA,
'backgroundFailure' => $colorConfigButtonBackgroundFailureInput,
'foregroundFailure' => $colorConfigButtonForegroundFailureInput,
'foregroundCallToActionFailure' => $colorConfigButtonForegroundCTAFailureInput,
]
],
] // optional
],
'http' => [
'userAgent' => $userAgent,
'websiteHostname' => $websiteHostname,
'paramList' => [
// optional: eine Möglichkeit zu steuern, ob die erkannte Alterszahl während des Selfie-Altersverifizierungsprozesses auf dem Bildschirm angezeigt wird
'showDetectedAgeNumber' => $showDetectedAgeNumber,
// optional: die Art der Verifizierung, die Sie dem Benutzer anzeigen möchten
// wenn dies nicht als Parameter angegeben ist oder leer ist, werden alle Typen sichtbar sein
'verificationTypeList' => array('creditCard', 'selfie', 'scanId', 'email'),
// optional: die Art der Verifizierung, die standardmäßig ausgewählt sein soll
'verificationTypeDefault' => 'selfie',
// optional: E-Mail-Verifizierung als Fallback verwenden, falls die zuerst gewählte Verifizierung fehlschlägt
'useEmailAsFallbackVerification' => true,
// optional: eine Möglichkeit zu steuern, ob die Selfie-Erkennung erweiterte Liveness verwendet (verschiedene Prüfungen, um festzustellen, ob die Person vor der Webcam real ist)
'advancedLiveness' => $advancedLiveness,
]
],
// optional: die Go.cam-Verifizierungsversion
'verificationVersion' => AvsPhpSdkV1::VERIFICATION_VERSION_STANDARD_V1,
// verpflichtend: die URL, um nach einer Verifizierung zur Partnerseite zurückzukehren
'linkBack' => $linkBack,
// optional: IP des Benutzers
'ipStr' => $userIp,
// optional: ISO-Ländercode des Benutzers
'countryCode' => $countryCode,
// optional: ISO-Bundesstaatencode des Benutzers (hauptsächlich für die USA verwendet)
'stateCode' => $stateCode,
]);
Schritt 5: Die Verifizierungs-URL generieren
$verificationUrl = $avsInstance->toUrl();
Schritt 6: Einen Link auf Ihrer Website hinzufügen
"$verificationUrl; ?>" target="_blank">Altersverifizierung starten
Die Postback-URL muss auf Ihr Backend verweisen, wo Sie die von Go.cam gesendeten Callback-Daten verarbeiten. Siehe Backend Callback-Datenreferenz für Details.
Verifizierung mit iframe-Bibliothek
Die iframe-Bibliothek baut auf der Redirect-Bibliothek auf, ermöglicht es Go.cam jedoch, als Overlay-iframe zu laufen. Außerdem bietet sie Lifecycle-Steuerung und Ereignisbehandlung für den Verifizierungsprozess.
Tipp: Eine Beispielimplementierung kann aus Ihrem Go.cam-Konto heruntergeladen werden.
Schritt 1: Die iframe-URL generieren
Rufen Sie statt toUrl() Folgendes auf:
$verificationUrl = $avsInstance->toIframeUrl();
Schritt 2: Die Frontend SDK einbinden
Schritt 3: Einen Trigger-Button hinzufügen
disabled>
Verifizierungs-iframe öffnen
Schritt 4: Die Frontend SDK initialisieren
var openVerificationIframeButton = document.querySelector('#openVerificationIframeButton');
var iframeUrl = ''; // oben aus PHP generiert
AvsJsSdk.V1.Config.create({ iframeLocationUrl: iframeUrl });
var avsInstance = new AvsJsSdk.V1.Core();
avsInstance.init();
Schritt 5: SDK-Ereignisse verarbeiten
Die SDK löst während des Verifizierungsprozesses Ereignisse aus. Sie können diese überwachen und darauf reagieren:
avsInstance.onMessage = function (eventMessage) {
switch (eventMessage.name) {
// Prüfphase: iframe wurde geladen
case AvsJsSdk.V1.Config.EVENT_ON_CHECK_IFRAME_LOADED:
// ein Ereignis an das iframe senden, um die Prüfphase des Verifizierungsprozesses zu starten
avsInstance.emit(AvsJsSdk.V1.Config.EVENT_STATUS_REQUEST);
break;
// Prüfphase: Altersverifizierung war in einem vorherigen Verifizierungsprozess erfolgreich, Benutzer ist bereits verifiziert
case AvsJsSdk.V1.Config.EVENT_ON_INITIAL_VERIFICATION_SUCCESS:
// Verifizierungs-Payload ist gültig
if (eventMessage.data.isPayloadValid) {
// den Button "Verifizierung starten" deaktivieren
openVerificationIframeButton.disabled = true;
return;
}
// Verifizierungs-Payload ist nicht gültig, mit dem Verifizierungsprozess fortfahren
avsInstance.emit(AvsJsSdk.V1.Config.EVENT_RESOURCE_PRELOAD);
break;
// Prüfphase: Altersverifizierung war in einem vorherigen Verifizierungsprozess nicht erfolgreich oder wurde überhaupt nicht ausgeführt
case AvsJsSdk.V1.Config.EVENT_ON_INITIAL_VERIFICATION_NOT_FOUND:
// Prüfphase fehlgeschlagen, zur Verifizierungsphase übergehen und ein Ereignis senden, um das Vorladen der Ressourcen für die Verifizierungsphase zu starten
avsInstance.emit(AvsJsSdk.V1.Config.EVENT_RESOURCE_PRELOAD);
break;
// Verifizierungsphase: iframe-Ressourcen wurden geladen
case AvsJsSdk.V1.Config.EVENT_ON_RESOURCES_LOADED:
// den Button "Verifizierung starten" aktivieren
openVerificationIframeButton.disabled = false;
// ein Klick-Ereignis an den Button "Verifizierung starten" anhängen
openVerificationIframeButton.addEventListener('click', function () {
// das Verifizierungs-iframe als Overlay anzeigen
avsInstance.iframeInstance.expand();
});
break;
// Verifizierungsphase: Auf den Schließen-Button des iframe-Overlays wurde geklickt
case AvsJsSdk.V1.Config.EVENT_ON_CLOSE_IFRAME:
// das Verifizierungs-iframe-Overlay ausblenden (es läuft weiterhin im Hintergrund)
avsInstance.iframeInstance.collapse();
break;
// Verifizierungsphase: Verifizierungsprozess war erfolgreich
case AvsJsSdk.V1.Config.EVENT_ON_VERIFICATION_SUCCESS:
// den Button "Verifizierung starten" deaktivieren
openVerificationIframeButton.disabled = true;
break;
}
}
Frontend SDK Ereignisreferenz
Bei Verwendung der iframe-Bibliothek kann die SDK die folgenden Ereignisse auslösen:
- EVENT_ON_CHECK_IFRAME_LOADED – Iframe-Dokument bereit.
- EVENT_STATUS_REQUEST – Aktuellen Verifizierungsstatus anfordern.
- EVENT_ON_INITIAL_VERIFICATION_SUCCESS – Vorherige Verifizierung gefunden (Cookie vorhanden).
- EVENT_ON_INITIAL_VERIFICATION_NOT_FOUND – Keine Verifizierung gefunden.
- EVENT_RESOURCE_PRELOAD – Laden der Verifizierungsressourcen starten.
- EVENT_ON_INITIAL_VERIFICATION_FATAL_ERROR – Ungültige Schlüssel oder Fehler beim Laden der Ressourcen.
- EVENT_ON_START_PAGE_LOADED – Verifizierungsseite geladen (Ressourcen werden noch geladen).
- EVENT_ON_RESOURCES_LOADED – Verifizierungsressourcen vollständig geladen.
- EVENT_ON_CLOSE_IFRAME – Iframe-Overlay geschlossen.
- EVENT_ON_VERIFICATION_SUCCESS – Verifizierung erfolgreich.
- EVENT_ON_VERIFICATION_ERROR – Verifizierung fehlgeschlagen.
Backend Callback-URL-Daten
Nach jedem Verifizierungsversuch (Erfolg oder Misserfolg) sendet Go.cam einen Server-zu-Server-Postback, um Ihr Backend über das Ergebnis zu informieren.
Der Postback wird als Array mit Feldern geliefert, die die Verifizierungssitzung und deren Ergebnis beschreiben.
Beispiel-Payload
[
'userData' => [
'userId' => 123,
'colorConfig' => [
'body' => [
'background' => '#900',
'foreground' => '#fff',
'button' => [
'background' => '#fb0',
'foreground' => '#333',
'foregroundCallToAction' => '#700',
'backgroundFailure' => '#fb0',
'foregroundFailure' => '#333',
'foregroundCallToActionFailure' => '#700',
]
]
]
],
'state' => 'Success',
'stateInt' => 2,
'sessionId' => 12345,
'errorCode' => 0,
'deviceType' => 1,
'stepId' => 2,
'websiteHostname' => 'your-site-name.cam',
'ip' => '127.0.0.1',
]
Feldreferenz
state
Gibt an, ob die Verifizierung erfolgreich war.
| Möglicher Wert | Bedeutung |
|---|---|
| Success | die Verifizierung war erfolgreich |
| Fail | die Verifizierung ist fehlgeschlagen |
stateInt
Numerische Darstellung des Verifizierungsstatus.
| Möglicher Wert | Bedeutung |
|---|---|
| 0 | unbekannt |
| 1 | Test nicht gestartet oder abgebrochen |
| 2 | Erfolg |
| 3 | Fehlgeschlagen |
| 4 | Link abgelaufen |
| 5 | Link bereits verwendet |
sessionId
Eindeutige Kennung der Verifizierungssitzung.
Beispiel: 12345
errorCode
Fehlercode, wenn die Verifizierung fehlgeschlagen ist.
| Möglicher Wert | Bedeutung |
|---|---|
| 0 | Kein Fehler |
| 25001 | Gerät wird nicht unterstützt |
| 25032 | Vorladen der Verifizierungsressourcen fehlgeschlagen (face api resources) |
| 25033 | Vorladen der Verifizierungsressourcen fehlgeschlagen (tesseract resources) |
| 25034 | Die Kameraliste Ihres Geräts konnte nicht abgerufen werden (Kameraauswahlschritt bei der Selfie-Erkennung) |
| 25055 | Es konnten nicht genügend Gesichter aus dem Gerätevideo erkannt werden (erkanntes Alter ist 0) |
| 25056 | Gesichtsähnlichkeitsprüfung fehlgeschlagen (Vergleich aller Selfie-Gesichter) |
| 25057 | Es konnten nicht genügend Gesichter aus dem Gerätevideo erkannt werden (0 Gesichter erkannt) |
| 25070 | Keine Gesichter erkannt |
| 25061 | Es konnten nicht genügend Gesichter aus dem Gerätevideo erkannt werden (Ausdrucksprüfung fehlgeschlagen) |
| 25062 | Gesichtsähnlichkeitsprüfung fehlgeschlagen (Vergleich von Ausdrucksgesichtern) |
| 25047 | Webcam-Initialisierungsfehler (Selfie-Erkennungsschritt) |
| 25035 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Selfie-Erkennungsschritt -> face api detector) |
| 25036 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Selfie-Erkennungsschritt -> face api age model) |
| 25037 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Selfie-Erkennungsschritt -> face api recognition model) |
| 25038 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Selfie-Erkennungsschritt -> face api landmarks model) |
| 25058 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Selfie-Erkennungsschritt -> face api expression model) |
| 25067 | Liveness-Gesichtsabgleich fehlgeschlagen |
| 25069 | Liveness-Gesichtsabgleich fehlgeschlagen |
| 25085 | Liveness-Gesichtsabgleich fehlgeschlagen |
| 25086 | Liveness-Gesichtsabgleich fehlgeschlagen |
| 25068 | Liveness-Prüfung fehlgeschlagen |
| 25039 | Die Kameraliste Ihres Geräts konnte nicht abgerufen werden (Kameraauswahlschritt bei der Ausweiserkennung) |
| 25040 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> tesseract worker) |
| 25041 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> tesseract language model) |
| 25042 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> tesseract language init) |
| 25043 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> tesseract worker config) |
| 25044 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> face api detector) |
| 25045 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> face api recognition model) |
| 25091 | Initialisierung der Erkennungsbibliotheken fehlgeschlagen (Ausweiserkennungsschritt -> yolo model) |
| 25051 | Es konnte kein Gesicht aus Ihrem Ausweis extrahiert werden |
| 25052 | Das Selfie-Gesicht stimmt nicht mit dem auf dem Ausweis gefundenen Gesicht überein |
| 25053 | Erkanntes Alter ist unter 18 Jahren (Ausweiserkennungsschritt) |
| 25075 | Erkanntes Alter ist unter 18 Jahren (Selfie-Erkennungsschritt) |
| 25054 | Ihr Alter konnte nicht aus dem aktuellen Ausweis extrahiert werden |
| 25090 | Ihr Alter konnte nicht aus dem aktuellen Ausweis extrahiert werden (yolo-Schritt) |
| 25046 | Webcam-Initialisierungsfehler (Ausweiserkennungsschritt) |
| 20056 | Ungültige gesendete Daten für die E-Mail-Altersverifizierung |
| 20051 | Ungültige Captcha-Antwort |
| 20052 | Captcha-Prüfung fehlgeschlagen |
| 20053 | E-Mail ist nicht zulässig |
| 20058 | Fehler bei der Eignungsantwort der E-Mail |
| 20054 | Senden des E-Mail-Verifizierungscodes für das Alter fehlgeschlagen |
| 20057 | Ungültige gesendete Daten für den Verifizierungscode |
| 20055 | Prüfung des Verifizierungscodes fehlgeschlagen |
| 20061 | Ungültige E-Mail-Adresse |
| 20002 | Maximal zulässige Testzeit abgelaufen (Test-Erfolgs-Callback) |
| 20004 | Ungültige step id (Test-Erfolgs-Callback) |
| 20000 | Ungültiges Token (Test-Erfolgs-Callback) |
| 20034 | Ungültige xcore api curl-Antwort (Test-Erfolgs-Callback) |
| 20003 | Maximal zulässige Testzeit abgelaufen (Test-Fehler-Callback) |
| 20005 | Ungültige step id (Test-Fehler-Callback) |
| 20001 | Ungültiges Token (Test-Fehler-Callback) |
| 20035 | Ungültige xcore api curl-Antwort (Test-Fehler-Callback) |
| 20036 | Erkanntes Alter ist unter 18 Jahren |
| 18001 | Interner Fehler bei der Kreditkartenverifizierung |
| 18002 | Maxmind-Fehler bei der Kreditkartenverifizierung |
deviceType
Art des verwendeten Geräts.
| Möglicher Wert | Bedeutung |
|---|---|
| 0 | unbekannt |
| 1 | mobil |
| 2 | Desktop |
stepId
Phase des Verifizierungsprozesses.
| Möglicher Wert | Bedeutung |
|---|---|
| 0 | unbekannt |
| 1 | Test nicht gestartet oder abgebrochen |
| 2 | Erfolg |
| 3 | Fehlgeschlagen |
| 4 | Link abgelaufen |
| 5 | Link bereits verwendet |
idCountry
ISO-Ländercode des bereitgestellten Ausweisdokuments.
Beispiel: FR
idState
ISO-Bundesstaatencode des bereitgestellten Ausweisdokuments (hauptsächlich für die USA verwendet).
Beispiel: TX
idType
Art des Ausweisdokuments.
| Möglicher Wert | Bedeutung |
|---|---|
| 1 | Personalausweis |
| 2 | Reisepass |
| 3 | Führerschein |
websiteHostname
Hostname der Website, auf der die Verifizierung gestartet wurde.
Beispiel: your-site-name.cam
ip
IP-Adresse des Geräts des Benutzers.
Beispiel: 127.0.0.1
Schützen Sie Ihr Unternehmen, Ihre Benutzer und Ihren Ruf
Entscheiden Sie sich für GO.cam – die einfache und zertifizierte Altersverifizierungslösung, der die heutigen Website-Betreiber vertrauen.
Fangen Sie noch heute an!