Je viens de me rendre compte que la page Stripe qu’ouvre le lien envoyé aux clients comporte des erreurs et ne fonctionne pas.
J’ai ceci qui s’affiche dans l’encadre « Voici les informations sur le paiement à réaliser » :
Code de paiement **INV=225.CUS=18**
**Warning**: Undefined variable $tag in **/srv/users/dolibarr/apps/dolibarr/public/htdocs/public/payment/newpayment.php** on line **1261**
Et quand on clique sur « PAYER AVEC STRIPE », une erreur similaire apparait : **Warning**: Undefined variable $tag in **/srv/users/dolibarr/apps/dolibarr/public/htdocs/public/payment/newpayment.php** on line **2279**
Il demande le titulaire de la carte, j’en mets un et là :
**Warning**: Undefined variable $customer in **/srv/users/dolibarr/apps/dolibarr/public/htdocs/public/payment/newpayment.php** on line **798**
**Warning**: Undefined variable $charge in **/srv/users/dolibarr/apps/dolibarr/public/htdocs/public/payment/newpayment.php** on line **799**
**Warning**: Cannot modify header information - headers already sent by (output started at /srv/users/dolibarr/apps/dolibarr/public/htdocs/public/payment/newpayment.php:798) in **/srv/users/dolibarr/apps/dolibarr/public/htdocs/public/payment/newpayment.php** on line **811**
Et ici ça s’arrête, plus rien.
Je n’utilise que très rarement Stripe mais là j’en avais besoin. Ça a fonctionné jadis (il y a deux ou trois ans).
J’étais en v18, ça ne fonctionnait pas. Je viens de passer en v19, ça ne change rien.
J’ai été voir les champs du module Stripe : il ne semble rien manquer.
Bonjour,
la configuration de votre moteur php implique l’affichage des messages de warning, désactivez cette option et tout marchera
en fait l’affichage des warning implique que les entêtes http ne peuvent pas être envoyées après et donc pas de « rebond » automatique vers le paiement stripe
Techniquement, une page web pour faire un renvoi vers une autre page utilise une instruction dans le header de la requette http et si un warning est affiché le header n’est alors plus accessible tout simplement
Si vous voulez que le redirect fonctionne il ne faut pas avoir le moindre texte affiché avant l’appel au header / redirect
Dans votre cas il n’y a pas d’autre alternative que de ne pas afficher les warning, ou alors vous corrigez tous les warning possible, c’est un gros chantier qui est en cours et qui a un peu « explosé » du fait du passage à php 8+ qui affiche beaucoup plus de warning que les versions précédentes
Il suffit de ne pas afficher les warning (voir par exemple les explications ici Advanced PHP Error Handling via PHP - No htaccess Required! | Perishable Press) l’idée étant que sur un serveur de prod c’est plutôt une mauvaise idée d’afficher les erreurs et warnings aux visiteurs et qu’il vaut mieux mettre tout ceci dans un fichier log et d’afficher tout ça sur le serveur de preprod/dev …
Vous avez tout à fait raison, même si je suis le seul à utiliser cette instance Dolibarr (quoique non puisque j’ai exceptionnellement des paiements CB).
Mais c’est bien le fait d’avoir des warning qui m’embêtait car ça cache souvent un code pas top top. Ça fait longtemps qu’on est passé à PHP8 quand même
Donc ok, après s’il n’y a pas de dysfonctionnements importants, tant mieux.