🔍 PRUEBA DE CERTIFICADO DIGITAL SUNAT
1. Verificación de archivos
❌ ERROR: Certificado no encontrado en:
/home/corpor59/api_bejar/api_sunat/Certificado/20612757594.pfx
Verifica que el archivo esté en api_sunat/Certificado/
❌ ERROR: Archivo JSON no encontrado en:
/home/corpor59/api_bejar/api_sunat/Json/20612757594.json
2. Prueba de lectura del certificado .pfx
No se puede probar certificado porque no existe el archivo.
3. Extensiones PHP requeridas
✅ openssl: ACTIVADA (Para firma digital)
✅ curl: ACTIVADA (Para conexión con SUNAT)
✅ soap: ACTIVADA (Para Web Services SUNAT)
✅ zip: ACTIVADA (Para comprimir XML)
✅ xml: ACTIVADA (Para manejo de XML)
✅ dom: ACTIVADA (Para DOMDocument)
✅ mbstring: ACTIVADA (Para cadenas multibyte)
4. Prueba con archivo firmar-xml.php
✅ Archivo firmar-xml.php encontrado✓ Usa base64_decode()
✓ Hace referencia a 'clavCertificado'
Fragmento del código (primeras 20 líneas):1: <?php
2: class firmadocpe
3: {
4: function FirmarCpe($Json_Fac, $Json_Emp)
5: {
6: // Leemos el json
7: foreach ($Json_Emp as $cpe)
8: {
9: $ruc_Emisor = $cpe['rucEmisor'];
10: $nom_cert = base64_decode($cpe['nomCertificado']);
11: $clav_cert = base64_decode($cpe['clavCertificado']);
12: }
13:
14: foreach ($Json_Fac as $cpe)
15: {
16: $TipoComprobante = $cpe['tipComp'];
17: $serieComp = $cpe['serieComp'];
18: $numeroComp = $cpe['numeroComp'];
19: $VersionUbl = $cpe['UBL'];
20: }
5. Soluciones sugeridas
Basado en tu estructura JSON:1.
Tu sistema ya está configurado correctamente • JSON tiene estructura de array con objeto
• Contraseñas en Base64: NO
• Campos: clavCertificado, userSol, claveSol (no clave_certificado, usuario_sol)
2.
Si firmar-xml.php falla, verifica que: a) Use
json_decode() y tome
[0] del array
b) Decodifique con
base64_decode() c) Use los nombres correctos de campos
// Código esperado en firmar-xml.php
$json_content = file_get_contents('Json/20612757594.json');
$config_array = json_decode($json_content, true);
$config = $config_array[0]; // ← IMPORTANTE
// Decodificar desde Base64
$clave_cert = base64_decode($config['clavCertificado']);
$usuario_sol = base64_decode($config['userSol']);3.
Problema común: Si firmar-xml.php busca 'clave_certificado' pero tu JSON tiene 'clavCertificado'
Solución: Actualizar firmar-xml.php para usar los nombres correctos
6. Resumen y enlaces
📝 Diagnóstico final
❌ ARCHIVOS FALTANTES
Faltan archivos esenciales. Verifica que existan:
• api_sunat/Certificado/20612757594.pfx
• api_sunat/Json/20612757594.json