8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai besoin de récupérer la valeur d'une ligne pour Paypal.

En php 5.4, ça fonctionne bien via :

Mais en version test en php 7, Paypal m'indique :
You have entered an invalid quantity value. A quantity value must be an integer greater than or equal to one.

Si j'ai bien compris, c'est que la valeur de ma ligne panier n'est pas transmise à Paypal. Paypal ne récupère rien lors du basculement vers leur site. Avec la chance que j'ai le code a encore changé !!!

Si vous avez un tuto ou un exemple. Merci d'avance.
Modifié par Tintin75 (25 Jan 2016 - 20:08)
si tu rajoute un pti (float) ou un pti (int) genre : (float)$_SESSION['panier']['libelleProduit'][0]
<?php echo (int) $_SESSION['panier']['qteProduit'][0]; ?>

La valeur des quantités est 1 à .... Nombre entier, vue que c'est une quantité.

ou float ça ne passe pas. Vivement que je finisse les tests !!! Le coup de Paypal, je m'y attendais pas.

Merci encore Jencal, ça coince au niveau de la bascule de mon site vers Paypal. Le panier fonctionne nickel de bout en bout 0 erreur sur le serveur test. Donc le code du panier est bon.

J'ai vérifié 20 fois mon api Paypal et je vois aucune erreur. En version Prod 5.4, Paypal fonctionne nickel. En version 7 rien !!!

Je viens de tester le code en php 5.6, même cas. Smiley bawling
Modifié par Tintin75 (21 Jan 2016 - 19:11)
J'ai testé les variables ça passe.

Je me demande si tu as pas raion, avec Paypal et Php7 ...

J'ai envoyé un mail à l'intégrateur de Paypal, j'attends ça réponse.

Le code passe sur mon serveur, dès que je balance les infos à Paypal, ça plante.

Etrange ..
Modifié par Tintin75 (22 Jan 2016 - 11:53)
Réponse de l'intégrateur de Paypal

http://php.net/manual/en/function.intval.php

Ok, je dois préciser dans la nouvelle version de php.

Comment fonctionne interval ? Je pige pas le truc. J'ai des nombres entiers vue que c'est des quantité d'achat.

Ligne qui pose problème :

<input type="hidden" name="quantity_1" value="<?php echo $_SESSION['panier']['qteProduit'][0]; ?>" 


En gros il faut que j'indique pour qteProduit que c'est un nombre entier. Comment rajouter la mention interval ?

Merci de vos retours.
Modifié par Tintin75 (25 Jan 2016 - 16:31)
oué, moi je t'avais dit (int) ou (float)
mais au final c'est intval

suffit de faire comme dans le lien,

intval($_SESSION['panier']['qteProduit'][0]);
Merci l'ami, ça fonctionne pas. Normalement ça devrai !!! C'est ce que j'ai tapé aussi. L'intégrateur ma filé la même ligne de code.

L'intégrateur vient de me filer ça :

<input type="hidden" name="quantity_1" value="<?php echo intval($_SESSION['panier']['qteProduit'][0]); ?>" />

Ca ne fonctionne pas !!! Smiley bawling

Toujours le message :

Vous avez saisi une quantité incorrecte. La quantité doit être représentée par un entier égal ou supérieur à un.

Je sais pas si je vais y arriver sur ce coup là Smiley bawling L'intégrateur cherche aussi pourquoi ça ne fonctionne pas !!!
Modifié par Tintin75 (25 Jan 2016 - 17:28)
L'intégrateur à trouvé, plusieurs lignes vides envoyé, donc ça plante Paypal. En 5.4 je peux envoyer 29 lignes vides ça passe en 7 niet.

Si j'envoi une seule ligne avec un article dedans ça fonctionne.

Le hic c'est que j'ai pas qu'un seul article en commande ça varie sans arrêt !!!!

Je ne sais pas comment faire. Peux t'on envoyer que les lignes ou il y a des données via un bout de code ? Genre 5 lignes on envoi 5 lignes, il y a qu'une ligne le programme envoi que la ligne ?
Modifié par Tintin75 (26 Jan 2016 - 07:56)
Modérateur
Bonjour,

Avec php, tu fais des "if (...) {...}" qui vont vérifier si tes variables de session sont vides ou pas, et qui génèrent ensuite le html que pour les variables de session qui ne sont pas vides.

Du code assez simple il me semble.

Amicalement,
Bonjour,

La commande if empty, je connais je l'utilise souvent.

Mon problème venait pas du code mais du réglage de serveur. J'ai modifié les paramètres et ça fonctionne à merveille.

Merci de ton aide et bonne journée.