Leeftijd verificatie systeem

Eenvoudig gemaakt
100% Gratis

Aanbevolen door

ASACP - Vereniging van Sites die Bescherming van Kinderen Bevorderen
MojoHost – premium hostingprovider

Audited

GDPR EU Compliant GDPR
100% gratis leeftijdsverificatiesysteem

Ontwikkelaarsdocumentatie | API & Integratiegids - Standaardimplementatie

Implementatievoorbeelden

Go.cam biedt twee standaard implementatievoorbeelden, beschikbaar in PHP en JavaScript.

Verificatie via redirect-bibliotheek

Deze implementatie genereert een Go.cam-verificatie-URL op basis van uw toegangssleutels.

Deze kan in standalone-modus worden gebruikt als de leeftijdsverificatie in een nieuw browservenster of via een redirect moet worden uitgevoerd.

Deze methode is ontworpen om eenvoudig en gemakkelijk te volgen te zijn. Hieronder vindt u een stapsgewijze uitleg.

Tip: Een voorbeeldimplementatie kan worden gedownload vanuit uw Go.cam-account.

Stap 1: Voeg de PHP SDK toe


require_once 'avsPhpSdkV1.php';
				

Stap 2: Initialiseer de SDK

Haal de vereiste inloggegevens op uit uw Go.cam-account en bewerk het bestand config.php.


$config['partnerId'] = 0;
$config['cipherKey'] = '';
$config['hmacKey']   = '';
				

Initialiseer de SDK-klasse in het bestand index.php.


$avsInstance = new AvsPhpSdkV1(
	$config['partnerId'],
	$config['cipherKey'],
	$config['hmacKey']
);
				

Stap 3: (Optioneel) Stel de taal in

Standaard wordt de testpagina in het Engels weergegeven. Ondersteunde talen:

Engels, Frans, Duits, Nederlands, Italiaans, Portugees, Spaans


$avsInstance->setLanguage(AvsPhpSdkV1::LANGUAGE_EN);
				

Stap 4: Definieer de request payload

Go.cam gebruikt AES-256-CBC-encryptie voor veilige communicatie.

Voor elke sessie moet u de payload definiëren, die verplichte en optionele parameters kan bevatten.

Voorbeeld:


$avsInstance->fillRequest([
        'userData' => [
        // verplicht: interne gebruikers-id van de partner, gebruikt voor het volgen van de gebruiker
        'userId' => $userId,
        // optioneel: aangepaste gegevens die de partner in deze verificatiesessie wil opnemen
        'someCustomData' => true,
        // optioneel: aangepaste kleuren voor de interface van het Go.cam-verificatieproces
        'colorConfig' => [
			'body' => [
				'background' => $colorConfigBodyBackground,
				'foreground' => $colorConfigBodyForeground,
				'button' => [
					'background' => $colorConfigButtonBackground,
					'foreground' => $colorConfigButtonForeground,
					'foregroundCallToAction' => $colorConfigButtonForegroundCTA,
					'backgroundFailure' => $colorConfigButtonBackgroundFailureInput,
					'foregroundFailure' => $colorConfigButtonForegroundFailureInput,
					'foregroundCallToActionFailure' => $colorConfigButtonForegroundCTAFailureInput,
				]
			],
		] // optioneel
    ],
    'http' => [
        'userAgent' => $userAgent,
        'websiteHostname' => $websiteHostname,
        'paramList' => [
			// optioneel: een manier om te bepalen of het gedetecteerde leeftijdsnummer op het scherm wordt getoond tijdens het selfie-leeftijdsverificatieproces
			'showDetectedAgeNumber' => $showDetectedAgeNumber,
			// optioneel: het type verificatie dat u aan de gebruiker wilt tonen
			// als dit niet als parameter is opgegeven of leeg is, zijn alle typen zichtbaar
			'verificationTypeList' => array('creditCard', 'selfie', 'scanId', 'email'),
			// optioneel: het type verificatie dat standaard geselecteerd moet zijn
			'verificationTypeDefault' => 'selfie',
			// optioneel: gebruik e-mailverificatie als fallback voor het geval de eerst gekozen verificatie mislukt
			'useEmailAsFallbackVerification' => true,
			// optioneel: een manier om te bepalen of de selfie-detectie geavanceerde liveness zal gebruiken (verschillende controles om te detecteren of de persoon voor de webcam echt is)
			'advancedLiveness' => $advancedLiveness,
        ]
    ],
	// optioneel: de Go.cam-verificatieversie
	'verificationVersion' => AvsPhpSdkV1::VERIFICATION_VERSION_STANDARD_V1,
	// verplicht: de URL om terug te keren naar de partnersite na een verificatie
	'linkBack' => $linkBack,
	// optioneel: IP van de gebruiker
	'ipStr' => $userIp,
	// optioneel: ISO-landcode van de gebruiker
	'countryCode' => $countryCode,
	// optioneel: ISO-staatcode van de gebruiker (vooral gebruikt voor de VS)
	'stateCode'  => $stateCode,
]);
				

Stap 5: Genereer de verificatie-URL


$verificationUrl = $avsInstance->toUrl();
				

Stap 6: Voeg een link toe op uw website


"$verificationUrl; ?>" target="_blank">Start leeftijdsverificatie
				

De postback-URL moet verwijzen naar uw backend, waar u de callbackgegevens verwerkt die door Go.cam worden verzonden. Zie de Backend Callback Data Reference voor meer details.

Verificatie met iframe-bibliotheek

De iframe-bibliotheek bouwt voort op de redirect-bibliotheek, maar maakt het mogelijk om Go.cam uit te voeren als een overlay-iframe. Ze biedt ook lifecycle-controle en eventafhandeling voor het verificatieproces.

Tip: Een voorbeeldimplementatie kan worden gedownload vanuit uw Go.cam-account.

Stap 1: Genereer de iframe-URL

Roep in plaats van toUrl() het volgende aan:


$verificationUrl = $avsInstance->toIframeUrl();
				

Stap 2: Voeg de Frontend SDK toe



				

Stap 3: Voeg een triggerknop toe



				

Stap 4: Initialiseer de Frontend SDK


var openVerificationIframeButton = document.querySelector('#openVerificationIframeButton');
var iframeUrl = ''; // hierboven gegenereerd vanuit PHP

AvsJsSdk.V1.Config.create({ iframeLocationUrl: iframeUrl });

var avsInstance = new AvsJsSdk.V1.Core();
avsInstance.init();
				

Stap 5: Verwerk SDK-events

De SDK activeert events tijdens het verificatieproces. U kunt deze opvangen en erop reageren:


avsInstance.onMessage = function (eventMessage) {
	switch (eventMessage.name) {

		// controlefase: iframe is geladen
		case AvsJsSdk.V1.Config.EVENT_ON_CHECK_IFRAME_LOADED:

			// stuur een event naar de iframe om de controlefase van het verificatieproces te starten
			avsInstance.emit(AvsJsSdk.V1.Config.EVENT_STATUS_REQUEST);

			break;

		// controlefase: leeftijdsverificatie was succesvol in een eerder verificatieproces, gebruiker is al geverifieerd
		case AvsJsSdk.V1.Config.EVENT_ON_INITIAL_VERIFICATION_SUCCESS:

			// verificatiepayload is geldig
			if (eventMessage.data.isPayloadValid) {
				// schakel de knop "start verificatie" uit
				openVerificationIframeButton.disabled = true;
				return;
			}

			// verificatiepayload is niet geldig, ga verder met het verificatieproces
			avsInstance.emit(AvsJsSdk.V1.Config.EVENT_RESOURCE_PRELOAD);

			break;

		// controlefase: leeftijdsverificatie was niet succesvol in een eerder verificatieproces of werd helemaal niet uitgevoerd
		case AvsJsSdk.V1.Config.EVENT_ON_INITIAL_VERIFICATION_NOT_FOUND:

			// controlefase mislukt, ga naar de verificatiefase en stuur een event om het preloaden van resources voor de verificatiefase te starten
			avsInstance.emit(AvsJsSdk.V1.Config.EVENT_RESOURCE_PRELOAD);

			break;

		// verificatiefase: iframe-resources zijn geladen
		case AvsJsSdk.V1.Config.EVENT_ON_RESOURCES_LOADED:

			// schakel de knop "start verificatie" in
			openVerificationIframeButton.disabled = false;

			// koppel een klik-event aan de knop "start verificatie"
			openVerificationIframeButton.addEventListener('click', function () {
				// toon het verificatie-iframe als overlay
				avsInstance.iframeInstance.expand();
			});

			break;

		// verificatiefase: op de sluitknop van de iframe-overlay is geklikt
		case AvsJsSdk.V1.Config.EVENT_ON_CLOSE_IFRAME:

			// verberg de verificatie-iframe-overlay (deze draait nog steeds op de achtergrond)
			avsInstance.iframeInstance.collapse();

			break;

		// verificatiefase: verificatieproces was succesvol
		case AvsJsSdk.V1.Config.EVENT_ON_VERIFICATION_SUCCESS:

			// schakel de knop "start verificatie" uit
			openVerificationIframeButton.disabled = true;

			break;

		}

	}
				

Frontend SDK Event Reference

Bij gebruik van de iframe-bibliotheek kan de SDK de volgende events activeren:

  • EVENT_ON_CHECK_IFRAME_LOADED – Iframe-document gereed.
  • EVENT_STATUS_REQUEST – Huidige verificatiestatus opvragen.
  • EVENT_ON_INITIAL_VERIFICATION_SUCCESS – Eerdere verificatie gevonden (cookie aanwezig).
  • EVENT_ON_INITIAL_VERIFICATION_NOT_FOUND – Geen verificatie gevonden.
  • EVENT_RESOURCE_PRELOAD – Begin met het laden van verificatieresources.
  • EVENT_ON_INITIAL_VERIFICATION_FATAL_ERROR – Ongeldige sleutels of fout bij het laden van resources.
  • EVENT_ON_START_PAGE_LOADED – Verificatiepagina geladen (resources worden nog geladen).
  • EVENT_ON_RESOURCES_LOADED – Verificatieresources volledig geladen.
  • EVENT_ON_CLOSE_IFRAME – Iframe-overlay gesloten.
  • EVENT_ON_VERIFICATION_SUCCESS – Verificatie succesvol.
  • EVENT_ON_VERIFICATION_ERROR – Verificatie mislukt.

Backend Callback URL-gegevens

Na elke verificatiepoging (succes of mislukking) stuurt Go.cam een server-to-server postback om uw backend op de hoogte te stellen van het resultaat.

De postback wordt geleverd als een array met velden die de verificatiesessie en de uitkomst ervan beschrijven.

Voorbeeld-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',
]

				

Veldreferentie

state

Geeft aan of de verificatie succesvol was.

Mogelijke waarde Betekenis
Success de verificatie was succesvol
Fail de verificatie is mislukt

stateInt

Numerieke weergave van de verificatiestatus.

Mogelijke waarde Betekenis
0 onbekend
1 Test niet gestart of afgebroken
2 Succes
3 Mislukt
4 Link verlopen
5 Link al gebruikt

sessionId

Unieke identificatie van de verificatiesessie.

Voorbeeld: 12345

errorCode

Foutcode als de verificatie is mislukt.

Mogelijke waarde Betekenis
0 Geen fout
25001 Apparaat wordt niet ondersteund
25032 Voorladen van verificatieresources mislukt (face api resources)
25033 Voorladen van verificatieresources mislukt (tesseract resources)
25034 Kon de cameralijst van uw apparaat niet ophalen (cameraselectiestap voor selfie-detectie)
25055 Kon niet genoeg gezichten detecteren uit de apparaatvideo (gedetecteerde leeftijd is 0)
25056 Gezichtsgelijkeniscontrole mislukt (vergelijking van alle selfie-gezichten)
25057 Kon niet genoeg gezichten detecteren uit de apparaatvideo (0 gezichten gedetecteerd)
25070 Geen gezichten gedetecteerd
25061 Kon niet genoeg gezichten detecteren uit de apparaatvideo (expressiecontrole mislukt)
25062 Gezichtsgelijkeniscontrole mislukt (vergelijking van expressiegezichten)
25047 Webcam-initialisatiefout (stap voor selfie-detectie)
25035 Initialisatie van detectiebibliotheken mislukt (stap voor selfie-detectie -> face api detector)
25036 Initialisatie van detectiebibliotheken mislukt (stap voor selfie-detectie -> face api age model)
25037 Initialisatie van detectiebibliotheken mislukt (stap voor selfie-detectie -> face api recognition model)
25038 Initialisatie van detectiebibliotheken mislukt (stap voor selfie-detectie -> face api landmarks model)
25058 Initialisatie van detectiebibliotheken mislukt (stap voor selfie-detectie -> face api expression model)
25067 Liveness face match-controle mislukt
25069 Liveness face match-controle mislukt
25085 Liveness face match-controle mislukt
25086 Liveness face match-controle mislukt
25068 Liveness-controle mislukt
25039 Kon de cameralijst van uw apparaat niet ophalen (cameraselectiestap voor scan-id-detectie)
25040 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> tesseract worker)
25041 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> tesseract language model)
25042 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> tesseract language init)
25043 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> tesseract worker config)
25044 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> face api detector)
25045 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> face api recognition model)
25091 Initialisatie van detectiebibliotheken mislukt (stap voor scan-id-detectie -> yolo model)
25051 Kon geen gezicht uit uw identiteitskaart extraheren
25052 Selfie-gezicht komt niet overeen met het gezicht op de identiteitskaart
25053 Gedetecteerde leeftijd is lager dan 18 jaar (stap voor scan-id-detectie)
25075 Gedetecteerde leeftijd is lager dan 18 jaar (stap voor selfie-detectie)
25054 Kon uw leeftijd niet extraheren uit de huidige identiteitskaart
25090 Kon uw leeftijd niet extraheren uit de huidige identiteitskaart (yolo-stap)
25046 Webcam-initialisatiefout (stap voor scan-id-detectie)
20056 Ongeldige geposte gegevens voor leeftijdsverificatie via e-mail
20051 Ongeldige captcha-respons
20052 Captcha-controle mislukt
20053 E-mail komt niet in aanmerking
20058 Fout in respons voor geschiktheid van e-mail
20054 Verzenden van e-mailverificatiecode voor leeftijd mislukt
20057 Ongeldige geposte gegevens voor verificatiecode
20055 Controle van verificatiecode mislukt
20061 Ongeldig e-mailadres
20002 Maximaal toegestane testtijd verlopen (succes-callback van test)
20004 Ongeldige step id (succes-callback van test)
20000 Ongeldig token (succes-callback van test)
20034 Ongeldige xcore api curl-respons (succes-callback van test)
20003 Maximaal toegestane testtijd verlopen (fout-callback van test)
20005 Ongeldige step id (fout-callback van test)
20001 Ongeldig token (fout-callback van test)
20035 Ongeldige xcore api curl-respons (fout-callback van test)
20036 Gedetecteerde leeftijd is lager dan 18 jaar
18001 Interne fout bij creditcardverificatie
18002 Maxmind-fout bij creditcardverificatie

deviceType

Type apparaat dat is gebruikt.

Mogelijke waarde Betekenis
0 onbekend
1 mobiel
2 desktop

stepId

Fase van het verificatieproces.

Mogelijke waarde Betekenis
0 onbekend
1 Test niet gestart of afgebroken
2 Succes
3 Mislukt
4 Link verlopen
5 Link al gebruikt

idCountry

ISO-landcode van het opgegeven identiteitsdocument.

Voorbeeld: FR

idState

ISO-staatcode van het opgegeven identiteitsdocument (voornamelijk gebruikt voor de VS).

Voorbeeld: TX

idType

Type identiteitsdocument.

Mogelijke waarde Betekenis
1 Identiteitskaart
2 Paspoort
3 Rijbewijs

websiteHostname

Hostnaam van de website waar de verificatie is gestart.

Voorbeeld: your-site-name.cam

ip

IP-adres van het apparaat van de gebruiker.

Voorbeeld: 127.0.0.1

Bescherm uw bedrijf, uw gebruikers en uw reputatie

Kies voor GO.cam — de eenvoudige en gecertificeerde oplossing voor leeftijdsverificatie die wordt vertrouwd door de huidige websitebeheerders.
Ga vandaag nog aan de slag!

Online demonstratie

SUPPORT

Neem contact met ons op via e-mail op om go.cam op je webpagina te integreren

Voor verzoeken tot verwijdering van persoonsgegevens kunt u contact opnemen via .

Copyright 2025 GSI Développement SaS