API04003 : Réponse JSON malformée
Ce que cela signifie
Le serveur a renvoyé des données qui semblent être du JSON mais qui sont corrompues ou invalides. Le POS n'a pas pu analyser la réponse car la syntaxe JSON est cassée.
Causes courantes
- Avis/avertissements PHP — Sortie PHP avant le JSON
- BOM (Byte Order Mark) — Caractères invisibles au début du fichier
- Problèmes d'encodage — Problèmes d'encodage de caractères
- Réponse tronquée — Réponse coupée au milieu de la transmission
- Sortie de plugin — Un plugin a ajouté un contenu non-JSON
Comment corriger
1. Vérifiez les avis PHP
Les avis/avertissements PHP avant le JSON cassent l'analyse :
Dans wp-config.php :
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Consultez wp-content/debug.log et corrigez les problèmes.
2. Vérifiez les caractères BOM
Certains éditeurs de texte ajoutent des caractères BOM invisibles :
- Sauvegardez à nouveau les fichiers PHP sans BOM
- Utilisez l'encodage UTF-8 sans BOM
- Vérifiez les fichiers récemment modifiés
3. Vérifiez la réponse complète
Si les réponses sont tronquées :
- Vérifiez les paramètres de mise en mémoire tampon de sortie PHP
- Augmentez
output_bufferingdans php.ini - Vérifiez les problèmes de délai d'attente
4. Testez l'API directement
Dans votre navigateur ou en utilisant curl :
curl -v https://yoursite.com/wp-json/wcpos/v1/
Recherchez tout contenu inattendu avant le JSON.
5. Vérifiez l'encodage des caractères
Assurez-vous que la base de données et PHP utilisent UTF-8 :
- Vérifiez les paramètres de jeu de caractères dans
wp-config.php - Vérifiez que les tables de la base de données sont en UTF-8
- Recherchez les caractères spéciaux causant des problèmes