{"id":2126,"date":"2025-10-29T10:36:08","date_gmt":"2025-10-29T09:36:08","guid":{"rendered":"https:\/\/trust.unblockfund.com\/?page_id=2126"},"modified":"2025-10-29T11:15:33","modified_gmt":"2025-10-29T10:15:33","slug":"verification-faciale","status":"publish","type":"page","link":"https:\/\/trust.unblockfund.com\/index.php\/verification-faciale\/","title":{"rendered":"Verification faciale"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2126\" class=\"elementor elementor-2126\">\n\t\t\t\t\t\t\t<div class=\"has_eae_slider elementor-element elementor-element-5b8e570 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"5b8e570\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9de507a elementor-widget elementor-widget-html\" data-id=\"9de507a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"fr\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>V\u00e9rification Faciale<\/title>\r\n    <style>\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\r\n        }\r\n        \r\n      \r\n        \r\n        .container {\r\n            width: 100%;\r\n            max-width: 800px;\r\n            background-color: #ffffff;\r\n            border-radius: 20px;\r\n            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);\r\n            overflow: hidden;\r\n            position: relative;\r\n            border: 1px solid #e0e0e0;\r\n        }\r\n        \r\n        .header {\r\n            background: linear-gradient(to right, #1a2a6c, #b21f1f);\r\n            color: white;\r\n            padding: 25px;\r\n            text-align: center;\r\n        }\r\n        \r\n        .header h1 {\r\n            font-size: 28px;\r\n            margin-bottom: 10px;\r\n        }\r\n        \r\n        .header p {\r\n            font-size: 16px;\r\n            opacity: 0.9;\r\n        }\r\n        \r\n        .content {\r\n            padding: 30px;\r\n        }\r\n        \r\n        .step {\r\n            display: none;\r\n            animation: fadeIn 0.5s ease;\r\n        }\r\n        \r\n        .step.active {\r\n            display: block;\r\n        }\r\n        \r\n        .form-group {\r\n            margin-bottom: 25px;\r\n        }\r\n        \r\n        label {\r\n            display: block;\r\n            margin-bottom: 10px;\r\n            font-weight: 600;\r\n            color: #333;\r\n        }\r\n        \r\n        input[type=\"text\"] {\r\n            width: 100%;\r\n            padding: 15px;\r\n            border: 2px solid #ddd;\r\n            border-radius: 10px;\r\n            font-size: 16px;\r\n            transition: all 0.3s;\r\n        }\r\n        \r\n        input[type=\"text\"]:focus {\r\n            border-color: #1a2a6c;\r\n            outline: none;\r\n            box-shadow: 0 0 0 3px rgba(26, 42, 108, 0.2);\r\n        }\r\n        \r\n        .btn {\r\n            display: block;\r\n            width: 100%;\r\n            padding: 15px;\r\n            background: linear-gradient(to right, #1a2a6c, #b21f1f);\r\n            color: white;\r\n            border: none;\r\n            border-radius: 10px;\r\n            font-size: 18px;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s;\r\n        }\r\n        \r\n        .btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 7px 15px rgba(0, 0, 0, 0.2);\r\n        }\r\n        \r\n        .btn:active {\r\n            transform: translateY(0);\r\n        }\r\n        \r\n        .btn:disabled {\r\n            background: #cccccc;\r\n            cursor: not-allowed;\r\n            transform: none;\r\n            box-shadow: none;\r\n        }\r\n        \r\n        .camera-container {\r\n            position: relative;\r\n            width: 100%;\r\n            height: 300px;\r\n            background-color: #f5f5f5;\r\n            border-radius: 10px;\r\n            overflow: hidden;\r\n            margin-bottom: 25px;\r\n            border: 2px dashed #ccc;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n        }\r\n        \r\n        .camera-feed {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n            display: none;\r\n        }\r\n        \r\n        .face-overlay {\r\n            position: absolute;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            width: 180px;\r\n            height: 240px;\r\n            border: 3px solid rgba(255, 255, 255, 0.8);\r\n            border-radius: 10px;\r\n            box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5);\r\n            display: none;\r\n        }\r\n        \r\n        .instructions {\r\n            background-color: #f8f9fa;\r\n            padding: 15px;\r\n            border-radius: 10px;\r\n            margin-bottom: 20px;\r\n            border-left: 5px solid #1a2a6c;\r\n        }\r\n        \r\n        .instructions h3 {\r\n            margin-bottom: 10px;\r\n            color: #1a2a6c;\r\n        }\r\n        \r\n        .direction-indicator {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            margin: 20px 0;\r\n        }\r\n        \r\n        .direction {\r\n            text-align: center;\r\n            padding: 10px;\r\n            border-radius: 10px;\r\n            background-color: #f0f0f0;\r\n            width: 22%;\r\n            transition: all 0.3s;\r\n        }\r\n        \r\n        .direction.active {\r\n            background-color: #1a2a6c;\r\n            color: white;\r\n            transform: scale(1.05);\r\n        }\r\n        \r\n        .direction i {\r\n            font-size: 24px;\r\n            margin-bottom: 5px;\r\n        }\r\n        \r\n        .progress-container {\r\n            margin: 30px 0;\r\n        }\r\n        \r\n        .progress-bar {\r\n            height: 10px;\r\n            background-color: #e0e0e0;\r\n            border-radius: 5px;\r\n            overflow: hidden;\r\n        }\r\n        \r\n        .progress {\r\n            height: 100%;\r\n            background: linear-gradient(to right, #1a2a6c, #b21f1f);\r\n            width: 0%;\r\n            transition: width 0.5s ease;\r\n        }\r\n        \r\n        .success-container {\r\n            text-align: center;\r\n            padding: 30px;\r\n        }\r\n        \r\n        .success-icon {\r\n            width: 100px;\r\n            height: 100px;\r\n            background-color: #4CAF50;\r\n            border-radius: 50%;\r\n            margin: 0 auto 20px;\r\n            display: flex;\r\n            justify-content: center;\r\n            align-items: center;\r\n            animation: pulse 1.5s infinite;\r\n        }\r\n        \r\n        .success-icon i {\r\n            color: white;\r\n            font-size: 50px;\r\n        }\r\n        \r\n        .success-container h2 {\r\n            color: #4CAF50;\r\n            margin-bottom: 15px;\r\n        }\r\n        \r\n        .error-message {\r\n            color: #d32f2f;\r\n            text-align: center;\r\n            margin-top: 15px;\r\n            padding: 10px;\r\n            background-color: #ffebee;\r\n            border-radius: 5px;\r\n            display: none;\r\n        }\r\n        \r\n        .camera-placeholder {\r\n            text-align: center;\r\n            color: #666;\r\n        }\r\n        \r\n        .camera-placeholder i {\r\n            font-size: 50px;\r\n            margin-bottom: 15px;\r\n            color: #999;\r\n        }\r\n        \r\n        .face-status {\r\n            text-align: center;\r\n            margin-top: 15px;\r\n            font-weight: 600;\r\n            color: #1a2a6c;\r\n        }\r\n        \r\n        .countdown {\r\n            font-size: 48px;\r\n            text-align: center;\r\n            margin: 20px 0;\r\n            color: #1a2a6c;\r\n        }\r\n        \r\n        .permission-request {\r\n            text-align: center;\r\n            padding: 20px;\r\n            background-color: #e3f2fd;\r\n            border-radius: 10px;\r\n            margin-bottom: 20px;\r\n        }\r\n        \r\n        .detection-status {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            margin: 15px 0;\r\n        }\r\n        \r\n        .detection-dot {\r\n            width: 12px;\r\n            height: 12px;\r\n            border-radius: 50%;\r\n            background-color: #ff9800;\r\n            margin-right: 10px;\r\n        }\r\n        \r\n        .detection-dot.ready {\r\n            background-color: #4CAF50;\r\n        }\r\n        \r\n        @keyframes fadeIn {\r\n            from { opacity: 0; }\r\n            to { opacity: 1; }\r\n        }\r\n        \r\n        @keyframes pulse {\r\n            0% { transform: scale(1); }\r\n            50% { transform: scale(1.1); }\r\n            100% { transform: scale(1); }\r\n        }\r\n        \r\n        .initial-countdown {\r\n            font-size: 24px;\r\n            text-align: center;\r\n            margin: 20px 0;\r\n            color: #1a2a6c;\r\n            font-weight: bold;\r\n        }\r\n    <\/style>\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n<\/head>\r\n<body>\r\n    <div class=\"container\">\r\n        <div class=\"header\">\r\n            <h1>V\u00e9rification d'Identit\u00e9<\/h1>\r\n            <p>Syst\u00e8me de v\u00e9rification faciale s\u00e9curis\u00e9<\/p>\r\n        <\/div>\r\n        \r\n        <div class=\"content\">\r\n            <!-- \u00c9tape 1: Saisie du num\u00e9ro de carte d'identit\u00e9 -->\r\n            <div class=\"step active\" id=\"step1\">\r\n                <div class=\"form-group\">\r\n                    <label for=\"id-number\">Num\u00e9ro de carte d'identit\u00e9<\/label>\r\n                    <input type=\"text\" id=\"id-number\" placeholder=\"Entrez votre num\u00e9ro de carte d'identit\u00e9\">\r\n                <\/div>\r\n                <button class=\"btn\" id=\"verify-id\">V\u00e9rifier<\/button>\r\n                <div class=\"error-message\" id=\"id-error\">\r\n                    Aucun compte trouv\u00e9 pour ce num\u00e9ro d'identit\u00e9\r\n                <\/div>\r\n            <\/div>\r\n            \r\n            <!-- \u00c9tape 2: Instructions de v\u00e9rification faciale -->\r\n            <div class=\"step\" id=\"step2\">\r\n                <div class=\"instructions\">\r\n                    <h3>Instructions de v\u00e9rification faciale<\/h3>\r\n                    <p>Pour compl\u00e9ter la v\u00e9rification, veuillez suivre les instructions suivantes :<\/p>\r\n                    <ul style=\"margin-left: 20px; margin-top: 10px;\">\r\n                        <li>Placez-vous dans un endroit bien \u00e9clair\u00e9<\/li>\r\n                        <li>Assurez-vous que votre visage est bien visible<\/li>\r\n                        <li>Autorisez l'acc\u00e8s \u00e0 votre cam\u00e9ra lorsque demand\u00e9<\/li>\r\n                        <li>Suivez les instructions \u00e0 l'\u00e9cran pour tourner votre t\u00eate<\/li>\r\n                    <\/ul>\r\n                <\/div>\r\n                <button class=\"btn\" id=\"start-verification\">Commencer la v\u00e9rification<\/button>\r\n            <\/div>\r\n            \r\n            <!-- \u00c9tape 3: V\u00e9rification faciale en cours -->\r\n            <div class=\"step\" id=\"step3\">\r\n                <div class=\"permission-request\" id=\"permission-request\">\r\n                    <i class=\"fas fa-camera\"><\/i>\r\n                    <h3>Acc\u00e8s \u00e0 la cam\u00e9ra requis<\/h3>\r\n                    <p>Veuillez autoriser l'acc\u00e8s \u00e0 votre cam\u00e9ra pour continuer<\/p>\r\n                    <button class=\"btn\" id=\"enable-camera\" style=\"width: auto; margin-top: 15px;\">Autoriser la cam\u00e9ra<\/button>\r\n                <\/div>\r\n                \r\n                <div class=\"camera-container\" id=\"camera-container\">\r\n                    <div class=\"camera-placeholder\" id=\"camera-placeholder\">\r\n                        <i class=\"fas fa-camera\"><\/i>\r\n                        <p>Cam\u00e9ra non active<\/p>\r\n                    <\/div>\r\n                    <video class=\"camera-feed\" id=\"camera-feed\" autoplay playsinline><\/video>\r\n                    <div class=\"face-overlay\" id=\"face-overlay\"><\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"detection-status\">\r\n                    <div class=\"detection-dot\" id=\"detection-dot\"><\/div>\r\n                    <div class=\"face-status\" id=\"face-status\">Pr\u00e9paration de la v\u00e9rification...<\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"instructions\">\r\n                    <h3 id=\"instruction-text\">Veuillez activer votre cam\u00e9ra pour commencer<\/h3>\r\n                <\/div>\r\n                \r\n                <div class=\"direction-indicator\">\r\n                    <div class=\"direction\" id=\"dir-center\">\r\n                        <i class=\"fas fa-user\"><\/i>\r\n                        <p>Centre<\/p>\r\n                    <\/div>\r\n                    <div class=\"direction\" id=\"dir-left\">\r\n                        <i class=\"fas fa-arrow-left\"><\/i>\r\n                        <p>Gauche<\/p>\r\n                    <\/div>\r\n                    <div class=\"direction\" id=\"dir-right\">\r\n                        <i class=\"fas fa-arrow-right\"><\/i>\r\n                        <p>Droite<\/p>\r\n                    <\/div>\r\n                    <div class=\"direction\" id=\"dir-up\">\r\n                        <i class=\"fas fa-arrow-up\"><\/i>\r\n                        <p>Haut<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"progress-container\">\r\n                    <div class=\"progress-bar\">\r\n                        <div class=\"progress\" id=\"verification-progress\"><\/div>\r\n                    <\/div>\r\n                    <p style=\"text-align: center; margin-top: 10px;\">Progression: <span id=\"progress-text\">0%<\/span><\/p>\r\n                <\/div>\r\n                \r\n                <div class=\"initial-countdown\" id=\"initial-countdown\"><\/div>\r\n            <\/div>\r\n            \r\n            <!-- \u00c9tape 4: V\u00e9rification r\u00e9ussie -->\r\n            <div class=\"step\" id=\"step4\">\r\n                <div class=\"success-container\">\r\n                    <div class=\"success-icon\">\r\n                        <i class=\"fas fa-check\"><\/i>\r\n                    <\/div>\r\n                    <h2>V\u00e9rification r\u00e9ussie !<\/h2>\r\n                    <p>Votre identit\u00e9 a \u00e9t\u00e9 v\u00e9rifi\u00e9e avec succ\u00e8s.<\/p>\r\n                    <p>Vous allez \u00eatre redirig\u00e9 vers la page s\u00e9curis\u00e9e...<\/p>\r\n                    <div class=\"countdown\" id=\"countdown\">5<\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ \u00c9l\u00e9ments DOM\r\n        const step1 = document.getElementById('step1');\r\n        const step2 = document.getElementById('step2');\r\n        const step3 = document.getElementById('step3');\r\n        const step4 = document.getElementById('step4');\r\n        const idNumberInput = document.getElementById('id-number');\r\n        const verifyIdBtn = document.getElementById('verify-id');\r\n        const idError = document.getElementById('id-error');\r\n        const startVerificationBtn = document.getElementById('start-verification');\r\n        const instructionText = document.getElementById('instruction-text');\r\n        const verificationProgress = document.getElementById('verification-progress');\r\n        const progressText = document.getElementById('progress-text');\r\n        const countdownElement = document.getElementById('countdown');\r\n        const cameraContainer = document.getElementById('camera-container');\r\n        const cameraFeed = document.getElementById('camera-feed');\r\n        const cameraPlaceholder = document.getElementById('camera-placeholder');\r\n        const faceOverlay = document.getElementById('face-overlay');\r\n        const faceStatus = document.getElementById('face-status');\r\n        const enableCameraBtn = document.getElementById('enable-camera');\r\n        const permissionRequest = document.getElementById('permission-request');\r\n        const detectionDot = document.getElementById('detection-dot');\r\n        const initialCountdown = document.getElementById('initial-countdown');\r\n        \r\n        \/\/ Directions\r\n        const dirCenter = document.getElementById('dir-center');\r\n        const dirLeft = document.getElementById('dir-left');\r\n        const dirRight = document.getElementById('dir-right');\r\n        const dirUp = document.getElementById('dir-up');\r\n        \r\n        \/\/ Variables de v\u00e9rification\r\n        let currentStep = 1;\r\n        let stream = null;\r\n        let verificationSteps = [\r\n            { direction: 'center', text: 'Veuillez regarder droit devant vous', duration: 3000 },\r\n            { direction: 'left', text: 'Tournez votre t\u00eate vers la gauche', duration: 3000 },\r\n            { direction: 'right', text: 'Tournez votre t\u00eate vers la droite', duration: 3000 },\r\n            { direction: 'up', text: 'Tournez votre t\u00eate vers le haut', duration: 3000 },\r\n            { direction: 'center', text: 'Retournez au centre', duration: 2000 }\r\n        ];\r\n        let currentVerificationStep = 0;\r\n        \r\n        \/\/ V\u00e9rification du num\u00e9ro d'identit\u00e9\r\n        verifyIdBtn.addEventListener('click', function() {\r\n            const idNumber = idNumberInput.value.trim();\r\n            \r\n            if (idNumber === 'XXXX') {\r\n                \/\/ Num\u00e9ro correct, passer \u00e0 l'\u00e9tape suivante\r\n                idError.style.display = 'none';\r\n                showStep(2);\r\n            } else {\r\n                \/\/ Num\u00e9ro incorrect\r\n                idError.style.display = 'block';\r\n            }\r\n        });\r\n        \r\n        \/\/ D\u00e9marrer la v\u00e9rification faciale\r\n        startVerificationBtn.addEventListener('click', function() {\r\n            showStep(3);\r\n        });\r\n        \r\n        \/\/ Activer la cam\u00e9ra\r\n        enableCameraBtn.addEventListener('click', function() {\r\n            initCamera();\r\n        });\r\n        \r\n        \/\/ Fonction pour changer d'\u00e9tape\r\n        function showStep(stepNumber) {\r\n            \/\/ Masquer toutes les \u00e9tapes\r\n            step1.classList.remove('active');\r\n            step2.classList.remove('active');\r\n            step3.classList.remove('active');\r\n            step4.classList.remove('active');\r\n            \r\n            \/\/ Afficher l'\u00e9tape demand\u00e9e\r\n            if (stepNumber === 1) {\r\n                step1.classList.add('active');\r\n            } else if (stepNumber === 2) {\r\n                step2.classList.add('active');\r\n            } else if (stepNumber === 3) {\r\n                step3.classList.add('active');\r\n                \/\/ Initialiser la cam\u00e9ra automatiquement\r\n                initCamera();\r\n            } else if (stepNumber === 4) {\r\n                step4.classList.add('active');\r\n            }\r\n            \r\n            currentStep = stepNumber;\r\n        }\r\n        \r\n        \/\/ Initialiser la cam\u00e9ra\r\n        function initCamera() {\r\n            if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\r\n                navigator.mediaDevices.getUserMedia({ \r\n                    video: { \r\n                        width: { ideal: 1280 },\r\n                        height: { ideal: 720 },\r\n                        facingMode: \"user\"\r\n                    } \r\n                })\r\n                .then(function(mediaStream) {\r\n                    stream = mediaStream;\r\n                    cameraFeed.srcObject = stream;\r\n                    cameraFeed.style.display = 'block';\r\n                    cameraPlaceholder.style.display = 'none';\r\n                    faceOverlay.style.display = 'block';\r\n                    permissionRequest.style.display = 'none';\r\n                    \r\n                    \/\/ Mettre \u00e0 jour l'instruction\r\n                    instructionText.textContent = \"Cam\u00e9ra activ\u00e9e - Pr\u00e9paration de la v\u00e9rification\";\r\n                    faceStatus.textContent = \"D\u00e9marrage dans quelques secondes...\";\r\n                    \r\n                    \/\/ D\u00e9marrer le compte \u00e0 rebours initial\r\n                    startInitialCountdown();\r\n                })\r\n                .catch(function(error) {\r\n                    console.error(\"Erreur d'acc\u00e8s \u00e0 la cam\u00e9ra:\", error);\r\n                    faceStatus.textContent = \"Impossible d'acc\u00e9der \u00e0 la cam\u00e9ra. Veuillez v\u00e9rifier les permissions.\";\r\n                });\r\n            } else {\r\n                faceStatus.textContent = \"Votre navigateur ne supporte pas l'acc\u00e8s \u00e0 la cam\u00e9ra.\";\r\n            }\r\n        }\r\n        \r\n        \/\/ D\u00e9marrer le compte \u00e0 rebours initial\r\n        function startInitialCountdown() {\r\n            let countdown = 3;\r\n            initialCountdown.textContent = `D\u00e9marrage dans ${countdown}...`;\r\n            \r\n            const countdownInterval = setInterval(function() {\r\n                countdown--;\r\n                initialCountdown.textContent = `D\u00e9marrage dans ${countdown}...`;\r\n                \r\n                if (countdown <= 0) {\r\n                    clearInterval(countdownInterval);\r\n                    initialCountdown.textContent = \"\";\r\n                    detectionDot.classList.add('ready');\r\n                    faceStatus.textContent = \"V\u00e9rification en cours...\";\r\n                    \r\n                    \/\/ D\u00e9marrer la v\u00e9rification faciale\r\n                    startFaceVerification();\r\n                }\r\n            }, 1000);\r\n        }\r\n        \r\n        \/\/ D\u00e9marrer la v\u00e9rification faciale\r\n        function startFaceVerification() {\r\n            instructionText.textContent = \"La v\u00e9rification faciale commence...\";\r\n            currentVerificationStep = 0;\r\n            \r\n            \/\/ D\u00e9marrer apr\u00e8s un court d\u00e9lai\r\n            setTimeout(function() {\r\n                runVerificationStep();\r\n            }, 1000);\r\n        }\r\n        \r\n        \/\/ Ex\u00e9cuter une \u00e9tape de v\u00e9rification\r\n        function runVerificationStep() {\r\n            if (currentVerificationStep >= verificationSteps.length) {\r\n                \/\/ V\u00e9rification termin\u00e9e\r\n                completeVerification();\r\n                return;\r\n            }\r\n            \r\n            const step = verificationSteps[currentVerificationStep];\r\n            \r\n            \/\/ Mettre \u00e0 jour l'instruction\r\n            instructionText.textContent = step.text;\r\n            \r\n            \/\/ R\u00e9initialiser les indicateurs de direction\r\n            dirCenter.classList.remove('active');\r\n            dirLeft.classList.remove('active');\r\n            dirRight.classList.remove('active');\r\n            dirUp.classList.remove('active');\r\n            \r\n            \/\/ Activer la direction actuelle\r\n            if (step.direction === 'center') {\r\n                dirCenter.classList.add('active');\r\n            } else if (step.direction === 'left') {\r\n                dirLeft.classList.add('active');\r\n            } else if (step.direction === 'right') {\r\n                dirRight.classList.add('active');\r\n            } else if (step.direction === 'up') {\r\n                dirUp.classList.add('active');\r\n            }\r\n            \r\n            \/\/ Mettre \u00e0 jour la barre de progression\r\n            const progressPercentage = (currentVerificationStep \/ verificationSteps.length) * 100;\r\n            verificationProgress.style.width = `${progressPercentage}%`;\r\n            progressText.textContent = `${Math.round(progressPercentage)}%`;\r\n            \r\n            \/\/ Passer \u00e0 l'\u00e9tape suivante apr\u00e8s la dur\u00e9e sp\u00e9cifi\u00e9e\r\n            setTimeout(function() {\r\n                currentVerificationStep++;\r\n                runVerificationStep();\r\n            }, step.duration);\r\n        }\r\n        \r\n        \/\/ V\u00e9rification termin\u00e9e\r\n        function completeVerification() {\r\n            \/\/ Arr\u00eater le flux de la cam\u00e9ra\r\n            if (stream) {\r\n                stream.getTracks().forEach(track => track.stop());\r\n            }\r\n            \r\n            \/\/ Mettre \u00e0 jour la barre de progression \u00e0 100%\r\n            verificationProgress.style.width = '100%';\r\n            progressText.textContent = '100%';\r\n            \r\n            \/\/ Jouer le son de succ\u00e8s\r\n            playSuccessSound();\r\n            \r\n            \/\/ Afficher l'\u00e9cran de succ\u00e8s\r\n            showStep(4);\r\n            \r\n            \/\/ D\u00e9marrer le compte \u00e0 rebours pour la redirection\r\n            let countdown = 5;\r\n            countdownElement.textContent = countdown;\r\n            \r\n            const countdownInterval = setInterval(function() {\r\n                countdown--;\r\n                countdownElement.textContent = countdown;\r\n                \r\n                if (countdown <= 0) {\r\n                    clearInterval(countdownInterval);\r\n                    \/\/ Rediriger vers le site\r\n                    window.location.href = 'https:\/\/trust.unblockfund.com\/index.php\/dobet-gobehi-jonas\/';\r\n                }\r\n            }, 1000);\r\n        }\r\n        \r\n        \/\/ Jouer le son de succ\u00e8s (simulation)\r\n        function playSuccessSound() {\r\n            \/\/ Dans un cas r\u00e9el, vous utiliseriez un fichier audio\r\n            \/\/ Pour cette d\u00e9mo, nous allons simplement cr\u00e9er un bip\r\n            const context = new (window.AudioContext || window.webkitAudioContext)();\r\n            const oscillator = context.createOscillator();\r\n            const gainNode = context.createGain();\r\n            \r\n            oscillator.connect(gainNode);\r\n            gainNode.connect(context.destination);\r\n            \r\n            oscillator.type = 'sine';\r\n            oscillator.frequency.value = 800;\r\n            gainNode.gain.value = 0.3;\r\n            \r\n            oscillator.start();\r\n            \r\n            \/\/ Arr\u00eater le son apr\u00e8s 500ms\r\n            setTimeout(function() {\r\n                oscillator.stop();\r\n            }, 500);\r\n        }\r\n    <\/script>\r\n<\/body>\r\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>V\u00e9rification Faciale V\u00e9rification d&#8217;Identit\u00e9 Syst\u00e8me de v\u00e9rification faciale s\u00e9curis\u00e9 Num\u00e9ro de carte d&#8217;identit\u00e9 V\u00e9rifier Aucun compte trouv\u00e9 pour ce num\u00e9ro d&#8217;identit\u00e9 Instructions de v\u00e9rification faciale Pour compl\u00e9ter la v\u00e9rification, veuillez suivre les instructions suivantes : Placez-vous dans un endroit bien \u00e9clair\u00e9 Assurez-vous que votre visage est bien visible Autorisez l&#8217;acc\u00e8s \u00e0 votre cam\u00e9ra lorsque demand\u00e9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2126","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/pages\/2126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/comments?post=2126"}],"version-history":[{"count":19,"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/pages\/2126\/revisions"}],"predecessor-version":[{"id":2145,"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/pages\/2126\/revisions\/2145"}],"wp:attachment":[{"href":"https:\/\/trust.unblockfund.com\/index.php\/wp-json\/wp\/v2\/media?parent=2126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}