sunuid-sdk 1.0.52 → 1.0.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/sunuid-sdk.esm.js +21 -24
- package/dist/sunuid-sdk.esm.js.map +1 -1
- package/dist/sunuid-sdk.js +21 -24
- package/dist/sunuid-sdk.js.map +1 -1
- package/dist/sunuid-sdk.min.js +3 -3
- package/dist/sunuid-sdk.min.js.map +1 -1
- package/docs/SECURITY_GUIDE.md +4 -3
- package/examples/.htaccess.example +9 -6
- package/examples/partner-name-config.js +3 -3
- package/examples/production-config.js +1 -1
- package/examples/secure-init.php +154 -0
- package/examples/secure-integration-example.js +2 -2
- package/examples/secure-integration.html +1 -1
- package/examples/test-production.html +3 -3
- package/package.json +9 -9
- package/examples/basic-usage.php +0 -42
- package/examples/local-qr.php +0 -49
- package/examples/secure-usage.php +0 -309
- package/examples/web-integration.php +0 -138
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
|
|
3
|
-
require_once __DIR__ . '/../vendor/autoload.php';
|
|
4
|
-
|
|
5
|
-
use SunuID\SunuID;
|
|
6
|
-
use SunuID\Exception\SunuIDException;
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Exemple d'utilisation sécurisée du SDK PHP SunuID
|
|
10
|
-
*
|
|
11
|
-
* Cet exemple montre comment utiliser le SDK de manière sécurisée
|
|
12
|
-
* sans exposer les credentials dans le code.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
// ========================================
|
|
16
|
-
// CONFIGURATION SÉCURISÉE
|
|
17
|
-
// ========================================
|
|
18
|
-
|
|
19
|
-
// Option 1: Configuration avec initialisation sécurisée (RECOMMANDÉE)
|
|
20
|
-
$secureConfig = [
|
|
21
|
-
'type' => 2, // 1=KYC, 2=AUTH, 3=SIGNATURE
|
|
22
|
-
'partner_name' => 'MonApplicationSécurisée',
|
|
23
|
-
'theme' => 'light',
|
|
24
|
-
'language' => 'fr',
|
|
25
|
-
|
|
26
|
-
// Activer l'initialisation sécurisée
|
|
27
|
-
'secure_init' => true,
|
|
28
|
-
'secure_init_url' => __DIR__ . '/../secure-init.php', // Chemin vers votre endpoint sécurisé
|
|
29
|
-
|
|
30
|
-
// Options de sécurité
|
|
31
|
-
'enable_security_logs' => true,
|
|
32
|
-
'validate_inputs' => true,
|
|
33
|
-
'max_retries' => 3,
|
|
34
|
-
'request_timeout' => 10,
|
|
35
|
-
'token_max_age' => 300, // 5 minutes
|
|
36
|
-
|
|
37
|
-
// Logs
|
|
38
|
-
'enable_logs' => true,
|
|
39
|
-
'log_level' => \Monolog\Logger::INFO,
|
|
40
|
-
'log_file' => 'sunuid-secure.log'
|
|
41
|
-
];
|
|
42
|
-
|
|
43
|
-
// Option 2: Configuration traditionnelle (moins sécurisée)
|
|
44
|
-
$traditionalConfig = [
|
|
45
|
-
'client_id' => '1754166754_221A57B46843D755',
|
|
46
|
-
'secret_id' => '56d40fe70507228b27f2640ae65894177c2fedbf246e2b30978fde1fc43953c5',
|
|
47
|
-
'type' => 2,
|
|
48
|
-
'partner_name' => 'MonApplication',
|
|
49
|
-
'enable_security_logs' => true,
|
|
50
|
-
'validate_inputs' => true
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
// ========================================
|
|
54
|
-
// FONCTIONS UTILITAIRES
|
|
55
|
-
// ========================================
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Afficher les informations de sécurité
|
|
59
|
-
*/
|
|
60
|
-
function displaySecurityInfo(SunuID $sunuid): void
|
|
61
|
-
{
|
|
62
|
-
echo "🔒 Informations de Sécurité:\n";
|
|
63
|
-
echo " - Initialisé: " . ($sunuid->isInitialized() ? '✅' : '❌') . "\n";
|
|
64
|
-
echo " - Configuration sécurisée: " . ($sunuid->getConfig()['secure_init'] ? '✅' : '❌') . "\n";
|
|
65
|
-
echo " - Logs de sécurité activés: " . ($sunuid->getConfig()['enable_security_logs'] ? '✅' : '❌') . "\n";
|
|
66
|
-
echo " - Validation des entrées: " . ($sunuid->getConfig()['validate_inputs'] ? '✅' : '❌') . "\n";
|
|
67
|
-
|
|
68
|
-
if ($sunuid->getConfig()['secure_init']) {
|
|
69
|
-
echo " - Token: " . ($sunuid->getConfig()['token'] ? '***' . substr($sunuid->getConfig()['token'], -8) : 'null') . "\n";
|
|
70
|
-
echo " - Expire dans: " . ($sunuid->getConfig()['expires_in'] ?? 'N/A') . " secondes\n";
|
|
71
|
-
echo " - Requêtes: " . $sunuid->getConfig()['request_count'] . "/" . ($sunuid->getConfig()['max_requests'] ?? '∞') . "\n";
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
echo "\n";
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Afficher les logs de sécurité
|
|
79
|
-
*/
|
|
80
|
-
function displaySecurityLogs(SunuID $sunuid): void
|
|
81
|
-
{
|
|
82
|
-
$logs = $sunuid->getSecurityLogs();
|
|
83
|
-
|
|
84
|
-
if (empty($logs)) {
|
|
85
|
-
echo "📝 Aucun log de sécurité disponible\n\n";
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
echo "📝 Logs de Sécurité (" . count($logs) . " événements):\n";
|
|
90
|
-
foreach ($logs as $log) {
|
|
91
|
-
$level = str_contains($log['event'], 'ERROR') ? '❌' :
|
|
92
|
-
(str_contains($log['event'], 'SUCCESS') ? '✅' : 'ℹ️');
|
|
93
|
-
|
|
94
|
-
echo " {$level} {$log['timestamp']} - {$log['event']}\n";
|
|
95
|
-
if (!empty($log['data'])) {
|
|
96
|
-
echo " Données: " . json_encode($log['data']) . "\n";
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
echo "\n";
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// ========================================
|
|
103
|
-
// EXEMPLE 1: UTILISATION SÉCURISÉE
|
|
104
|
-
// ========================================
|
|
105
|
-
|
|
106
|
-
echo "🚀 EXEMPLE 1: Utilisation Sécurisée\n";
|
|
107
|
-
echo "=====================================\n\n";
|
|
108
|
-
|
|
109
|
-
try {
|
|
110
|
-
// Créer l'instance SDK avec configuration sécurisée
|
|
111
|
-
$sunuid = new SunuID($secureConfig);
|
|
112
|
-
|
|
113
|
-
echo "✅ SDK créé avec configuration sécurisée\n";
|
|
114
|
-
|
|
115
|
-
// Initialiser le SDK (les credentials seront récupérés automatiquement)
|
|
116
|
-
$sunuid->init();
|
|
117
|
-
|
|
118
|
-
echo "✅ SDK initialisé de manière sécurisée\n";
|
|
119
|
-
|
|
120
|
-
// Afficher les informations de sécurité
|
|
121
|
-
displaySecurityInfo($sunuid);
|
|
122
|
-
|
|
123
|
-
// Récupérer les informations du partenaire
|
|
124
|
-
$partnerInfo = $sunuid->getPartnerInfo();
|
|
125
|
-
echo "📋 Informations partenaire: " . json_encode($partnerInfo, JSON_PRETTY_PRINT) . "\n\n";
|
|
126
|
-
|
|
127
|
-
// Générer un QR code d'authentification
|
|
128
|
-
echo "🎯 Génération QR code d'authentification...\n";
|
|
129
|
-
$qrResult = $sunuid->generateQR();
|
|
130
|
-
|
|
131
|
-
echo "✅ QR Code généré:\n";
|
|
132
|
-
echo " - URL: " . $qrResult['qr_code_url'] . "\n";
|
|
133
|
-
echo " - Contenu: " . $qrResult['content'] . "\n";
|
|
134
|
-
echo " - Session ID: " . $qrResult['session_id'] . "\n";
|
|
135
|
-
echo " - Label: " . $qrResult['label'] . "\n";
|
|
136
|
-
echo " - Type: " . $qrResult['type'] . "\n";
|
|
137
|
-
echo " - Partenaire: " . $qrResult['partner_name'] . "\n\n";
|
|
138
|
-
|
|
139
|
-
// Vérifier le statut du QR code
|
|
140
|
-
echo "📊 Vérification du statut du QR code...\n";
|
|
141
|
-
$status = $sunuid->checkQRStatus($qrResult['session_id']);
|
|
142
|
-
echo "📊 Statut QR: " . json_encode($status, JSON_PRETTY_PRINT) . "\n\n";
|
|
143
|
-
|
|
144
|
-
// Afficher les logs de sécurité
|
|
145
|
-
displaySecurityLogs($sunuid);
|
|
146
|
-
|
|
147
|
-
} catch (SunuIDException $e) {
|
|
148
|
-
echo "❌ Erreur SunuID: " . $e->getMessage() . "\n";
|
|
149
|
-
echo "📍 Code: " . $e->getErrorCode() . "\n";
|
|
150
|
-
echo "📍 Contexte: " . json_encode($e->getContext()) . "\n";
|
|
151
|
-
} catch (Exception $e) {
|
|
152
|
-
echo "❌ Erreur: " . $e->getMessage() . "\n";
|
|
153
|
-
echo "📍 Fichier: " . $e->getFile() . ":" . $e->getLine() . "\n";
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// ========================================
|
|
157
|
-
// EXEMPLE 2: GÉNÉRATION DE DIFFÉRENTS TYPES
|
|
158
|
-
// ========================================
|
|
159
|
-
|
|
160
|
-
echo "\n🚀 EXEMPLE 2: Génération de Différents Types\n";
|
|
161
|
-
echo "==============================================\n\n";
|
|
162
|
-
|
|
163
|
-
try {
|
|
164
|
-
$sunuid = new SunuID($secureConfig);
|
|
165
|
-
$sunuid->init();
|
|
166
|
-
|
|
167
|
-
// Générer un QR code KYC
|
|
168
|
-
echo "📋 Génération QR code KYC...\n";
|
|
169
|
-
$kycQR = $sunuid->generateCustomQR(1, null, ['label' => 'Vérification d\'identité']);
|
|
170
|
-
echo "✅ QR KYC généré: " . $kycQR['qr_code_url'] . "\n\n";
|
|
171
|
-
|
|
172
|
-
// Générer un QR code de signature
|
|
173
|
-
echo "✍️ Génération QR code Signature...\n";
|
|
174
|
-
$signatureQR = $sunuid->generateCustomQR(3, null, ['label' => 'Signature électronique']);
|
|
175
|
-
echo "✅ QR Signature généré: " . $signatureQR['qr_code_url'] . "\n\n";
|
|
176
|
-
|
|
177
|
-
} catch (Exception $e) {
|
|
178
|
-
echo "❌ Erreur: " . $e->getMessage() . "\n";
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// ========================================
|
|
182
|
-
// EXEMPLE 3: GESTION DES CALLBACKS
|
|
183
|
-
// ========================================
|
|
184
|
-
|
|
185
|
-
echo "\n🚀 EXEMPLE 3: Gestion des Callbacks\n";
|
|
186
|
-
echo "=====================================\n\n";
|
|
187
|
-
|
|
188
|
-
try {
|
|
189
|
-
$sunuid = new SunuID($secureConfig);
|
|
190
|
-
$sunuid->init();
|
|
191
|
-
|
|
192
|
-
// Générer un état de sécurité
|
|
193
|
-
$state = $sunuid->generateState();
|
|
194
|
-
echo "🔐 État de sécurité généré: " . $state . "\n";
|
|
195
|
-
|
|
196
|
-
// Simuler un callback (en production, cela viendrait de l'API SunuID)
|
|
197
|
-
$callbackData = [
|
|
198
|
-
'token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjMsInNlc3Npb25faWQiOiJzZXNzaW9uXzEyMyIsInBhcnRuZXJfaWQiOjIxLCJ0eXBlIjoyLCJpYXQiOjE2MzQ1Njc4OTAsImV4cCI6MTYzNDU3MTQ5MH0.signature',
|
|
199
|
-
'session_id' => 'session_123',
|
|
200
|
-
'user_id' => 123,
|
|
201
|
-
'partner_id' => 21,
|
|
202
|
-
'type' => 2,
|
|
203
|
-
'timestamp' => time(),
|
|
204
|
-
'state' => $state
|
|
205
|
-
];
|
|
206
|
-
|
|
207
|
-
echo "📨 Simulation d'un callback reçu...\n";
|
|
208
|
-
echo "📋 Données callback: " . json_encode($callbackData, JSON_PRETTY_PRINT) . "\n\n";
|
|
209
|
-
|
|
210
|
-
// Valider le callback
|
|
211
|
-
$isValid = $sunuid->validateCallback($callbackData);
|
|
212
|
-
echo "🔍 Validation du callback: " . ($isValid ? '✅ Valide' : '❌ Invalide') . "\n";
|
|
213
|
-
|
|
214
|
-
if ($isValid) {
|
|
215
|
-
// Traiter l'authentification
|
|
216
|
-
$authResult = $sunuid->processAuthentication($callbackData);
|
|
217
|
-
echo "✅ Authentification traitée:\n";
|
|
218
|
-
echo " - User ID: " . $authResult['user_id'] . "\n";
|
|
219
|
-
echo " - Session ID: " . $authResult['session_id'] . "\n";
|
|
220
|
-
echo " - Partner ID: " . $authResult['partner_id'] . "\n";
|
|
221
|
-
echo " - Type: " . $authResult['type'] . "\n";
|
|
222
|
-
echo " - Timestamp: " . $authResult['timestamp'] . "\n\n";
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
} catch (Exception $e) {
|
|
226
|
-
echo "❌ Erreur: " . $e->getMessage() . "\n";
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// ========================================
|
|
230
|
-
// EXEMPLE 4: GESTION DES ERREURS
|
|
231
|
-
// ========================================
|
|
232
|
-
|
|
233
|
-
echo "\n🚀 EXEMPLE 4: Gestion des Erreurs\n";
|
|
234
|
-
echo "===================================\n\n";
|
|
235
|
-
|
|
236
|
-
try {
|
|
237
|
-
// Configuration invalide pour tester la gestion d'erreurs
|
|
238
|
-
$invalidConfig = [
|
|
239
|
-
'type' => 2,
|
|
240
|
-
'secure_init' => false, // Pas d'initialisation sécurisée
|
|
241
|
-
'client_id' => '', // Client ID vide
|
|
242
|
-
'secret_id' => 'trop_court', // Secret ID trop court
|
|
243
|
-
'enable_security_logs' => true
|
|
244
|
-
];
|
|
245
|
-
|
|
246
|
-
echo "🧪 Test avec configuration invalide...\n";
|
|
247
|
-
$sunuid = new SunuID($invalidConfig);
|
|
248
|
-
$sunuid->init(); // Cela devrait lever une exception
|
|
249
|
-
|
|
250
|
-
} catch (SunuIDException $e) {
|
|
251
|
-
echo "❌ Erreur SunuID capturée:\n";
|
|
252
|
-
echo " - Message: " . $e->getMessage() . "\n";
|
|
253
|
-
echo " - Code: " . $e->getErrorCode() . "\n";
|
|
254
|
-
echo " - Contexte: " . json_encode($e->getContext()) . "\n\n";
|
|
255
|
-
} catch (Exception $e) {
|
|
256
|
-
echo "❌ Erreur générale: " . $e->getMessage() . "\n\n";
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// ========================================
|
|
260
|
-
// EXEMPLE 5: UTILISATION AVEC VARIABLES D'ENVIRONNEMENT
|
|
261
|
-
// ========================================
|
|
262
|
-
|
|
263
|
-
echo "\n🚀 EXEMPLE 5: Utilisation avec Variables d'Environnement\n";
|
|
264
|
-
echo "==========================================================\n\n";
|
|
265
|
-
|
|
266
|
-
// En production, vous utiliseriez des variables d'environnement
|
|
267
|
-
// $_ENV['SUNUID_CLIENT_ID'] = 'votre_client_id';
|
|
268
|
-
// $_ENV['SUNUID_SECRET_ID'] = 'votre_secret_id';
|
|
269
|
-
|
|
270
|
-
try {
|
|
271
|
-
$envConfig = [
|
|
272
|
-
'type' => 2,
|
|
273
|
-
'partner_name' => 'AppProduction',
|
|
274
|
-
'secure_init' => true,
|
|
275
|
-
'secure_init_url' => __DIR__ . '/../secure-init.php',
|
|
276
|
-
'enable_security_logs' => true,
|
|
277
|
-
'validate_inputs' => true,
|
|
278
|
-
'log_file' => 'sunuid-production.log'
|
|
279
|
-
];
|
|
280
|
-
|
|
281
|
-
echo "🏭 Configuration production avec variables d'environnement...\n";
|
|
282
|
-
$sunuid = new SunuID($envConfig);
|
|
283
|
-
$sunuid->init();
|
|
284
|
-
|
|
285
|
-
echo "✅ SDK production initialisé\n";
|
|
286
|
-
displaySecurityInfo($sunuid);
|
|
287
|
-
|
|
288
|
-
} catch (Exception $e) {
|
|
289
|
-
echo "❌ Erreur production: " . $e->getMessage() . "\n";
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// ========================================
|
|
293
|
-
// RÉSUMÉ FINAL
|
|
294
|
-
// ========================================
|
|
295
|
-
|
|
296
|
-
echo "\n🎯 RÉSUMÉ DES BONNES PRATIQUES\n";
|
|
297
|
-
echo "===============================\n";
|
|
298
|
-
echo "✅ Utilisez l'initialisation sécurisée (secure_init: true)\n";
|
|
299
|
-
echo "✅ Stockez les credentials côté serveur uniquement\n";
|
|
300
|
-
echo "✅ Activez les logs de sécurité\n";
|
|
301
|
-
echo "✅ Validez les entrées utilisateur\n";
|
|
302
|
-
echo "✅ Gérez les erreurs avec SunuIDException\n";
|
|
303
|
-
echo "✅ Utilisez des variables d'environnement en production\n";
|
|
304
|
-
echo "✅ Surveillez les logs de sécurité régulièrement\n";
|
|
305
|
-
echo "✅ Changez régulièrement vos credentials\n";
|
|
306
|
-
echo "✅ Testez votre implémentation avant la mise en production\n\n";
|
|
307
|
-
|
|
308
|
-
echo "🔒 Votre intégration SunuID est maintenant sécurisée !\n";
|
|
309
|
-
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
|
|
3
|
-
require_once __DIR__ . '/../vendor/autoload.php';
|
|
4
|
-
|
|
5
|
-
use SunuID\SunuID;
|
|
6
|
-
|
|
7
|
-
// Configuration
|
|
8
|
-
$config = [
|
|
9
|
-
'client_id' => '1754166754_221A57B46843D755',
|
|
10
|
-
'secret_id' => '56d40fe70507228b27f2640ae65894177c2fedbf246e2b30978fde1fc43953c5',
|
|
11
|
-
'type' => 2,
|
|
12
|
-
'enable_logs' => true
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
$error = null;
|
|
16
|
-
$qrData = null;
|
|
17
|
-
|
|
18
|
-
try {
|
|
19
|
-
$sunuid = new SunuID($config);
|
|
20
|
-
$sunuid->init();
|
|
21
|
-
|
|
22
|
-
// Générer un QR code
|
|
23
|
-
$qrData = $sunuid->generateQR();
|
|
24
|
-
|
|
25
|
-
} catch (Exception $e) {
|
|
26
|
-
$error = $e->getMessage();
|
|
27
|
-
}
|
|
28
|
-
?>
|
|
29
|
-
|
|
30
|
-
<!DOCTYPE html>
|
|
31
|
-
<html lang="fr">
|
|
32
|
-
<head>
|
|
33
|
-
<meta charset="UTF-8">
|
|
34
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
35
|
-
<title>SunuID PHP SDK - Intégration Web</title>
|
|
36
|
-
<style>
|
|
37
|
-
body {
|
|
38
|
-
font-family: Arial, sans-serif;
|
|
39
|
-
max-width: 600px;
|
|
40
|
-
margin: 50px auto;
|
|
41
|
-
padding: 20px;
|
|
42
|
-
text-align: center;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.qr-container {
|
|
46
|
-
margin: 30px 0;
|
|
47
|
-
padding: 20px;
|
|
48
|
-
border: 2px dashed #ddd;
|
|
49
|
-
border-radius: 10px;
|
|
50
|
-
min-height: 300px;
|
|
51
|
-
display: flex;
|
|
52
|
-
align-items: center;
|
|
53
|
-
justify-content: center;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.qr-container img {
|
|
57
|
-
max-width: 250px;
|
|
58
|
-
border: 1px solid #ddd;
|
|
59
|
-
border-radius: 5px;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.error {
|
|
63
|
-
background: #ffebee;
|
|
64
|
-
color: #c62828;
|
|
65
|
-
padding: 15px;
|
|
66
|
-
border-radius: 5px;
|
|
67
|
-
margin: 20px 0;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.info {
|
|
71
|
-
background: #e3f2fd;
|
|
72
|
-
color: #1976d2;
|
|
73
|
-
padding: 15px;
|
|
74
|
-
border-radius: 5px;
|
|
75
|
-
margin: 20px 0;
|
|
76
|
-
text-align: left;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.success {
|
|
80
|
-
background: #e8f5e8;
|
|
81
|
-
color: #2e7d32;
|
|
82
|
-
padding: 15px;
|
|
83
|
-
border-radius: 5px;
|
|
84
|
-
margin: 20px 0;
|
|
85
|
-
}
|
|
86
|
-
</style>
|
|
87
|
-
</head>
|
|
88
|
-
<body>
|
|
89
|
-
<h1>🔐 SunuID PHP SDK</h1>
|
|
90
|
-
<p>Exemple d'intégration web</p>
|
|
91
|
-
|
|
92
|
-
<?php if ($error): ?>
|
|
93
|
-
<div class="error">
|
|
94
|
-
<h3>❌ Erreur</h3>
|
|
95
|
-
<p><?php echo htmlspecialchars($error); ?></p>
|
|
96
|
-
</div>
|
|
97
|
-
<?php elseif ($qrData): ?>
|
|
98
|
-
<div class="success">
|
|
99
|
-
<h3>✅ QR Code généré avec succès</h3>
|
|
100
|
-
<p>Scannez le QR code avec l'application SunuID</p>
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
<div class="qr-container">
|
|
104
|
-
<img src="<?php echo htmlspecialchars($qrData['qr_code_url']); ?>"
|
|
105
|
-
alt="QR Code SunuID" />
|
|
106
|
-
</div>
|
|
107
|
-
|
|
108
|
-
<div class="info">
|
|
109
|
-
<h4>📋 Informations du QR Code</h4>
|
|
110
|
-
<ul>
|
|
111
|
-
<li><strong>Type:</strong> <?php echo htmlspecialchars($qrData['type']); ?></li>
|
|
112
|
-
<li><strong>Partenaire:</strong> <?php echo htmlspecialchars($qrData['partner_name']); ?></li>
|
|
113
|
-
<li><strong>Session ID:</strong> <?php echo htmlspecialchars($qrData['session_id']); ?></li>
|
|
114
|
-
<li><strong>Label:</strong> <?php echo htmlspecialchars($qrData['label']); ?></li>
|
|
115
|
-
<li><strong>Contenu:</strong> <code><?php echo htmlspecialchars($qrData['content']); ?></code></li>
|
|
116
|
-
</ul>
|
|
117
|
-
</div>
|
|
118
|
-
|
|
119
|
-
<div class="info">
|
|
120
|
-
<h4>🔄 Vérifier le statut</h4>
|
|
121
|
-
<p>Session ID: <code><?php echo htmlspecialchars($qrData['session_id']); ?></code></p>
|
|
122
|
-
<p>Utilisez cette session ID pour vérifier le statut du scan.</p>
|
|
123
|
-
</div>
|
|
124
|
-
|
|
125
|
-
<?php else: ?>
|
|
126
|
-
<div class="error">
|
|
127
|
-
<h3>⚠️ Aucune donnée</h3>
|
|
128
|
-
<p>Aucun QR code n'a pu être généré.</p>
|
|
129
|
-
</div>
|
|
130
|
-
<?php endif; ?>
|
|
131
|
-
|
|
132
|
-
<div style="margin-top: 40px; padding: 20px; background: #f5f5f5; border-radius: 5px;">
|
|
133
|
-
<h4>📚 Documentation</h4>
|
|
134
|
-
<p>Pour plus d'informations, consultez la documentation du SDK PHP SunuID.</p>
|
|
135
|
-
<p><strong>Version:</strong> 1.0.0</p>
|
|
136
|
-
</div>
|
|
137
|
-
</body>
|
|
138
|
-
</html>
|