System zur Altersüberprüfung

Einfach und sicher
100 % Kostenlos

Empfohlen von

ASACP – Vereinigung der Orte, die den Kinderschutz fördern
MojoHost – Premium-Hosting-Anbieter

Audited

GDPR EU Compliant GDPR
100% kostenloses Altersverifizierungssystem

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



				

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!

Online-Demonstration

SUPPORT

Um go.cam auf Ihrer Webseite zu integrieren, kontaktieren Sie uns bitte per E-Mail an

Für Anfragen zur Löschung personenbezogener Daten kontaktieren Sie bitte .

Copyright 2025 GSI Développement SaS