Variable amount dans PAYPAL EXPRESS CHECKOUT

Nouveau WRInaute
Salut les copains,

J'essaie désespérément d'implémenter Paypal Express Checkout sur mon site marchand qui fonctionne depuis plusieurs années
avec Paypal Email.

Je me heurte au problème suivant : Je vend des produits sur mesure, à l'unité et le prix varie à chaque commande.
C'est un programme en PHP qui calcule la variable $prix.

La variable amount du formulaire HTML de Paypal ne semble accepter que les valeurs de type "" ou "99.99".
Je n'arrive pas malgré mes essais répétés, à transférer la valeur de ma variable $prix dans amount.

Ya ti kékun ka une idée ou de la lumière pour ma lanterne ?

Merci par avance pour votre aide.
 
WRInaute passionné
Tu n'arrives pas à l'intégrer au formulaire ou bien c'est le traitement PayPal qui la refuse une fois le formulaire validé ?
 
Nouveau WRInaute
Merci pour vos réponses.
Ma variable est numérique. C'est un montant.
Warum ?

C'est Paypal qui couine et qui me dit que la variable amount n'est as formatée conformément à ses attentes
 
WRInaute passionné
Numérique-numérique ? On est bien d'accord ? Un integer ?
Dans ce cas est-ce que PayPal attend bien un integer ?
Tu as déjà contrôlé avec un dump et leur documentation ?
 
WRInaute passionné
Si c'est une virgule qu'il a alors il y a des chances pour que sa valeur ne soit pas numérique-numérique :) . D'où l'intérêt de vérifier s'il s'agit bien d'un integer.
 
Nouveau WRInaute
Je progresse grâce à vos explications :

En effet, ma variable $prix_toile_arrondi n’était pas de type « integer ».

Je l’ai donc convertie et vérifiée avec le petit script suivant :

<?php
session_start();
settype ( $_SESSION['prix_toile_arrondi'] , "integer");
echo "Alors … Integer ou pas ?";
var_dump(is_int($_SESSION['prix_toile_arrondi']));
?>

Mais Paypal me renvoie désespérément le message suivant :

« Le lien que vous avez utilisé pour accéder au système PayPal contient un montant d'objet incorrectement formaté. »

Voici ci-dessous le script de mon bouton Paypal :

<div id="BOUTON_PAYPAL" style="position: absolute; width: 799px; height: 100px; z-index: 2; left: 4px; top: 491px; visibility: visible;">
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input name="amount" type="hidden" value="$_SESSION['prix_toile_arrondi']" />
<input name="currency_code" type="hidden" value="EUR" />
<input name="shipping" type="hidden" value="0.00" />
<input name="tax" type="hidden" value="0.00" />
<input name="return" type="hidden" value="http://votredomaine/paiementValide.php" />
<input name="cancel_return" type="hidden" value="http://votredomaine/paiementAnnule.php" />
<input name="notify_url" type="hidden" value="http://votredomaine/validationPaiement.php" />
<input name="cmd" type="hidden" value="_xclick" />
<input name="business" type="hidden" value="contact@storespergolas.com" />
<input name="item_name" type="hidden" value="Nom de votre produit" />
<input name="no_note" type="hidden" value="1" />
<input name="lc" type="hidden" value="FR" />
<input name="bn" type="hidden" value="PP-BuyNowBF" />
<input name="custom" type="hidden" value="ID_ACHETEUR" />
<input alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée" name="submit" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" type="image" /><img src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
</form>
</div>

Moi je sèche. Can you help ?
 
WRInaute passionné
gilibert a dit:
Can you help ?
Tss tss, soit on cause Français, soit on cause Anglais. Mais placer inutilement de l'Anglais pour meubler une phrase c'est ridicule.

Que te donne ton var_dump() ? Tu obtiens bien un int ?
Essaie aussi ton value="$_SESSION['prix_toile_arrondi']" sans les guillemets, puisque c'est une valeur numérique et non une chaîne de caractères.
 
WRInaute accro
Soit il y a eu oubli à la recopie, soit il y a un souci parce que

Code:
<input name="amount" type="hidden" value="$_SESSION['prix_toile_arrondi']" />

Je vois pas comment ça peut marcher alors que

Code:
<input name="amount" type="hidden" value="<?php echo intval ($_SESSION['prix_toile_arrondi'); ?>" />

Sans doute mieux déjà
 
WRInaute accro
UsagiYojimbo a dit:
<?php echo intval ($_SESSION['prix_toile_arrondi'); ?>
Je doute que paypal ai des soucis avec les float soit dit en passant et se priver des centimes peut être un gros souci au final :wink:
 
WRInaute passionné
Et quelle était l'erreur ?

C'est important, y'a un point en jeu entre Usagi et moi. Et au bout de 2000 points on gagne une tasse dédicacée par le patron de WRI. Comme à la station service.
(il parait même qu'avec ses 32000 messages Madrileño a obtenu un t-shirt presque neuf. J'dis ça, j'dis rien)
 
Discussions similaires
Haut