API04003: Respuesta JSON Malformada
Lo Que Esto Significa
El servidor devolvió datos que parecen ser JSON pero están corruptos o son inválidos. El POS no pudo interpretar la respuesta porque la sintaxis JSON está rota.
Causas Comunes
- Notices/advertencias de PHP — Salida de notificaciones de PHP antes del JSON
- BOM (Byte Order Mark) — Caracteres invisibles al inicio del archivo
- Problemas de codificación — Problemas de codificación de caracteres
- Respuesta truncada — Respuesta cortada a mitad de transmisión
- Salida de plugins — Un plugin añadió contenido que no es JSON
Cómo Arreglarlo
1. Verificar Notices de PHP
Los notices/advertencias de PHP antes del JSON rompen la interpretación:
En wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Revisa wp-content/debug.log y corrige cualquier problema.
2. Comprobar Caracteres BOM
Algunos editores de texto añaden caracteres BOM invisibles:
- Vuelve a guardar los archivos PHP sin BOM
- Usa codificación UTF-8 sin BOM
- Revisa los archivos editados recientemente
3. Verificar Respuesta Completa
Si las respuestas están siendo truncadas:
- Verifica la configuración de almacenamiento en búfer de PHP
- Aumenta
output_bufferingen php.ini - Verifica problemas de tiempo de espera
4. Probar la API Directamente
En tu navegador o usando curl:
curl -v https://yoursite.com/wp-json/wcpos/v1/
Busca cualquier contenido inesperado antes del JSON.
5. Comprobar Codificación de Caracteres
Asegúrate de que la base de datos y PHP usen UTF-8:
- Revisa la configuración de charset en
wp-config.php - Verifica que las tablas de la base de datos sean UTF-8
- Busca caracteres especiales que causen problemas