CRLibre / API_Hacienda

API libre para Factura Electrónica en Costa Rica, interfaz para integrar sistemas con el Ministerio de Hacienda para la Facturación Electrónica
https://crlibre.org/factura-electronica/
GNU Affero General Public License v3.0
166 stars 122 forks source link

-303 > File > Certificado subir. #159

Closed IngJaneB closed 1 year ago

IngJaneB commented 1 year ago

Describa el problema (bug) No permite subir el Certificado. Indica error -303. Pense que era por la sesión (tiempo) pero el mismo esta en 3600. Lo estoy mandando de un input tipo file.

           'w'=> 'fileUploader',
            "r"=> "subir_certif",
            "sessionKey"=>$key,
            "fileToUpload"=>$_FILES['llave']

falta algun dato?

Versión API: c215b0b2

Sistema operativo: Zorin OS

PHP versión: Php 8

MySQL versión: 5.2.0

Contexto adicional Cualquier otro contexto acá.

JeanCarlosChavarriaHughes commented 1 year ago

Hola @IngJaneB El error -303 significa:

//! Access denied to this page
define('ERROR_USERS_ACCESS_DENIED', '-303');

Veo que te falta agregar el parámetro iam , con el username.

Puedes revisar la API Hacienda Wiki

IngJaneB commented 1 year ago

Hola, tambien lo agregue pero aun asi no registra el Certificado. Me ha creado la carpeta pero vacia.

JeanCarlosChavarriaHughes commented 1 year ago

@IngJaneB tendrías que revisar los logs de PHP para ver cuál es el error. Podría ser algún problema de permisos de escritura?

Upload del certificado o llave criptográfica

Recuerde que el servidor debe estar ejecutándose en un sistema de archivos con permisos de escritura. Si es un ambiente efímero, no podrá funcionar ya que los certificados no se mantendrán en el sistema de archivos.

drwxrwxrwx 11 username 4096 Jun  1 21:11 .
drwxrwxr-x  8 username 4096 Jun  2 17:57 ..
drwxrwxr-x 20 username 4096 Jun  1 20:00 contrib
drwxrwxr-x  2 username 4096 Jun  1 20:00 core
drwxrwxrwx  2 username 4096 Jun  1 21:08 errors
drwxrwxrwx  3 username 4096 Jun  2 18:35 files
drwxrwxr-x  2 username 4096 Jun  1 20:00 install
drwxrwxrwx  2 username 4096 Jun  2 18:01 logs
drwxrwxr-x 10 username 4096 Jun  1 20:00 modules
drwxrwxr-x  2 username 4096 Jun  1 20:00 resources
drwxrwxr-x  3 username 4096 Jun  1 20:00 tools

El certificado será el que utilicemos para firmar los XML, este método solicita que el usuario esté logueado, para lo que es necesario enviar un sessionKey, usaremos el que obtuvimos en el módulo anterior.

Para subir el certificado debe enviar los siguientes valores: w = fileUploader r = subir_certif sessionKey= Esta la obtenemos previamente fileToUpload= Este es el archivo p12 es necesario que sea en . p12 con la p en minúscula iam su nombre de usuario

IngJaneB commented 1 year ago

Los permisos estan correctamente.

drwxrwxrwx 11 jackeline jackeline 4096 feb 1 21:36 . drwxrwxrwx 6 jackeline jackeline 4096 feb 1 20:19 .. drwxrwxrwx 20 jackeline jackeline 4096 jun 9 2022 contrib drwxrwxrwx 2 jackeline jackeline 4096 feb 1 21:34 core drwxrwxrwx 2 jackeline jackeline 4096 jun 9 2022 errors drwxrwxrwx 4 jackeline jackeline 4096 feb 3 11:33 files drwxrwxrwx 2 jackeline jackeline 4096 jun 9 2022 install drwxrwxrwx 2 jackeline jackeline 4096 feb 3 11:00 logs drwxrwxrwx 10 jackeline jackeline 4096 jun 9 2022 modules drwxrwxrwx 2 jackeline jackeline 4096 jun 9 2022 resources drwxrwxrwx 3 jackeline jackeline 4096 jun 9 2022 tools

           'w'=> 'fileUploader',
            "r"=> "subir_certif",
            "sessionKey"=>$key, -> aqui traigo la session haciendo la solicitud, es decir inicio sesión para guardarla y enviarla al certificado (Pudiera ser eso?)
            "fileToUpload"=>$_FILES['llave'], -> este es el input que trae el Documento.
            "iam"=>"Admin_cope"
IngJaneB commented 1 year ago

Sobre los Logs enconte lo siguiente:

[03-Feb-2023 09:53:19 America/Costa_Rica] PHP Deprecated: basename(): Passing null to parameter #1 ($path) of type string is deprecated in /opt/lampp/htdocs/Hacienda/api/modules/files/module.php on line 190 [03-Feb-2023 09:53:19 America/Costa_Rica] PHP Warning: Undefined array key "fileToUpload" in /opt/lampp/htdocs/Hacienda/api/modules/files/module.php on line 211 [03-Feb-2023 09:53:19 America/Costa_Rica] PHP Warning: Trying to access array offset on value of type null in /opt/lampp/htdocs/Hacienda/api/modules/files/module.php on line 211 [03-Feb-2023 09:53:19 America/Costa_Rica] PHP Warning: Undefined array key "extension" in /opt/lampp/htdocs/Hacienda/api/modules/files/module.php on line 226

JeanCarlosChavarriaHughes commented 1 year ago

@IngJaneB Puedes hacer la prueba desde Postman, y pasarle directamente los parámetros el archivo P12 y el sessionKey. Para descartar algún problema de argumentos de entrada con $key y $_FILES['llave']

AndreyArayaC commented 8 months ago

Recordar que se tiene que asignar el $config['users']['sessionLifetime'] en settings.php, sino la sesión nunca tendrá validez.