Closed PeterPedro closed 1 year ago
@PeterPedro
Yo lo tengo en setting.php:
$config['modules']['coreInstall'] = "../api/";
Mi estructura de archivos es:
.
├── api
│ ├── contrib
│ ├── core
│ ├── errors
│ ├── files
│ ├── install
│ ├── modules
│ ├── resources
│ └── tools
├── composer.json
├── _config.yml
├── INSTALL.md
├── LICENSE
├── Procfile
├── README.md
├── recursos
│ ├── API CRLibre.postman_collection V3.1.json
│ ├── creaFE.php
│ ├── creaMAC.php
│ ├── creaNC.php
│ ├── creaND.php
│ ├── Documento-API-Instalacion-CRLibre.docx
│ ├── genID12Digitos.php
│ ├── sql
│ └── Tablas para Facturador CRLibre.sql
├── THANKS
├── VERSION.md
└── www
├── api.php
├── composer.json
├── composer.phar
├── index.php
├── settings_original.php.dist
├── settings.php
├── settings.php.dist
├── settings.php.secret
├── vendor
└── xsd
Ah gracias por responder, aún no logro hacer que me funcione, para confirmar es el archivo "settings.php" que se encuentra en la carpeta www? Es que a mí me aparece en la línea 87 esto: "$config['modules']['coreInstall'] = getenv('../api/');"
No esto: "$config['modules']['coreInstall'] = "../api/";" como usted me muestra en su respuesta.
Si elimino el getenv() me muestra un mensaje de error. "La informacion json enviada contiene errores."
Tendrías que revisar cuales errores está encontrando. Con el servidor por ejemplo si esta usando Apache, con los logs de Apache.
o si lo ve más fácil con Docker, podría tratar revisando este PR, a mí me está funcionando bien los dos enfoques: https://github.com/CRLibre/API_Hacienda/pull/84
Si, los errores suceden porque yo cambié el código para que se viera como el de su ejemplo pero lo que me parece es que yo estoy usando Branch master y usted el Branch dev talvez? Lo supongo porque el getenv() sólo aparece en el master.
O sea será que yo no debería usar el Branch master?
Por cierto, con el Branch dev no tengo problemas en cargar el API, mi problema sucede solamente con el Branch master
@PeterPedro cuáles errores le muestra cuando quita el getenv() ? Debería funcionar el master, a mí me está funcionando. Igualmente el getenv() puede estar o no, eso no es obligatorio.
El error tienes que revisar con los logs, es muy difícil adivinar sin los logs. Es posible que este enviando: emisor_tipo_intendif en vez de emisor_tipo_identif. O alguno de los otros arreglos que se hicieron para 4.3, los medios de pago por ejemplo.
Cuando elimino el getenv() (solamente el del "$config['modules']['coreInstall']"
)
y hago: http://localhost/www/api.php
El error es "La informacion json enviada contiene errores."
Cuando hago: http://localhost/www/api.php?w=ejemplo&r=hola
El mensaje es:
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 19 of the JSON data
{"resp":"hola :)"}<br />
<b>Warning</b>: implode(): Invalid arguments passed in <b>C:\xampp\htdocs\api\core\grace.php</b> on line <b>85</b><br />
<br />
<b>Warning</b>: fopen(../api/logs/wirez_19_11_21_11.txt): failed to open stream: No such file or directory in <b>C:\xampp\htdocs\api\core\grace.php</b> on line <b>88</b><br />
Apache no me muestra errores en los logs.
Por si alguien más está con este problema he logrado arreglarlo un poco, no sé cual será exactamente mi problema pero ya por lo menos logro que me cargue el mensaje de hola en el branch master.
Intenté en Linux pero tuve exactamente el mismo problema, ceo que puede haber algún pequeño problemita con el sistema de archivos en la API pero lo que estoy haciendo es esto:
1) Eliminar la función getenv() en settings.php línea 87
2) Crear la carpeta api/logs (con permisos para crear y borrar archivos)
3) Despues dentro de la carpeta "logs" crear el archivo TXT con el nombre que se muestra en el error, por ejemplo "wirez_19_11_21_11.txt"
4) Asegurarse que el TXT tiene permisos de escritura
5) En api/core/grace.php comentar la línea 85 así "#$grace_logMsgs = implode("\n", $grace_logMsgs) . "\n";"
No sé que tan necesaria sea esa línea, si será solo para la creación de logs pero por lo menos ya puedo probar la API.
@PeterPedro, supongo que actualmente ya has solucionado este problema, pero para aquellas personas que están empezando a utilizar esta API les recomiendo realizar lo siguiente:
Agregar las variables de entorno que le hacen falta. Estas variables de entorno son las que estan dentro del archivo llamado settings.php
, después de las variables de entorno que configuran la base de datos y antes del mensaje You should not need to touch anything beyond this point. Los valores que pueden tener estas variables de entorno son los mismos de los que se encuentran en el archivo llamado settings_original.php.dist
a excepción de $config['crypto']['key']
y de $config['core']['host']
Para aquellas personas que levantaron la API a través de docker, es básicamente realizar lo mismo, pero para agregar las variables de entorno deben de modificar el archivo docker-compose
Hola . Puedes revisar este PR. Atiende el problema de docker que no funciona bien debido a la existencia de settings.php https://github.com/CRLibre/API_Hacienda/pull/161
@spartanox @PeterPedro
Describa el problema (bug) Buenas, no he logrado cargar la API en mi servidor, he intentado en IIS y en XAMPP en Windows.
Pasos para reproducir
Versión API: Lea como obtener la versión del API https://github.com/CRLibre/API_Hacienda/blob/master/VERSION.md
No sé la versión porque el API no carga y las instrucciones para conocer la versión requieren que cargue. Lo descargué el lunes 11 de noviembre 2019.
Sistema Operativo: Windows 10
PHP versión: 7.1.32
MySQL versión: 10.4.6-MariaDB
Comportamiento esperado Conectarse al API y mostrar este mensaje... "{"resp":"Module not found"}", o este mensaje... "{"resp":"hola :)"}" en caso de enviarle los parámetros "?w=ejemplo&r=hola"
Capturas de pantalla o registro de bitácora
Contexto adicional He intentado poner los paths en "$config['modules']['coreInstall']" en todas las maneras que conozco... ../api/ ../../api ..//api// ..\api\ y otras mas.
He intentado poner la carpeta api en paths distintos, incluso dentro de la carpeta www, no importa lo que haga no logro que el API me cargue.
Tanto IIS como XAMPP muestran el mismo mensaje.