Erreurs module Stripe (qui ne fonctionne plus)

Bonjour,

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.

Si vous avez des idées…
Merci.

Bonjour,
la configuration de votre moteur php implique l’affichage des messages de warning, désactivez cette option et tout marchera :slight_smile:

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

1 « J'aime »

Probablement, mais l’idée même de cacher des warning en se disant « jusqu’ici tout va bien », c’est pas trop mon état d’esprit :slight_smile:

Hum,
j’ai du répondre trop vite

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 …

Est-ce plus clair ainsi ?

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 :smiley:

Donc ok, après s’il n’y a pas de dysfonctionnements importants, tant mieux.

Bonjour,

Dolibarr est un projet Open Source, vous pouvez toujours proposer des corrections de warnings et améliorations de code !

2 « J'aime »