Jump to content

probleme paypal, "objet incorrectement formaté"


Recommended Posts

bonjour,
j'ai un gros probleme bizarre : quand je veux acheter un produit sur ma boutique
je clique sur "payer par CB et paypal ", j'ai un message d'erreur sur le site de paypal :

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

j'ai vu ce probleme 3 fois sur le forum mais personne ne réponds. vous pouvez m'aider ?
merci
nicolas

Link to comment
Share on other sites

bonjour,
merci pour votre réponse, meme un dimanche. merci !
version module paypal ? 1.6 (j'ai meme tout remplacé de ce module à partir d'une version entière fraichement téléchargée)
version PS ? 1311
hébergeur ? 1&1;Mode sandbox ou non ? non !

en fait ca a marché, jusqu'a il y a 3 jours. au secours !
je me trompe peut etre mais vu le message "montant d’objet incorrectement formaté.”
l'erreur viens peut etre du contenu transmis par la pare redirect.php.
voici un contenu intercepté : y a t il bien une erreur de format ? :

<html>
<head>
[removed][removed]
</head>
<body>

Merci de patienter, vous allez être redirigé vers PayPal. Merci.

Annuler


<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="paypal_form" class="hidden">
<input type="hidden" name="upload" value="1" />

<input type="hidden" name="address_override" value="1" />
<input type="hidden" name="first_name" value="nicolas" />
<input type="hidden" name="last_name" value="DE BEAULIEU" />
<input type="hidden" name="address1" value="30 rue des jeuneurs" />
<input type="hidden" name="city" value="paris" />
<input type="hidden" name="zip" value="75002" />
<input type="hidden" name="country" value="FR" />
<input type="hidden" name="amount" value="47.87" />
<input type="hidden" name="email" value="[email protected]" />

<input type="hidden" name="item_name_1" value="Lait de toilette pour bébé" />
<input type="hidden" name="amount_1" value="17.8" />
<input type="hidden" name="quantity_1" value="1" />
<input type="hidden" name="item_name_2" value="Concentré minceur, au rosier muscat" />
<input type="hidden" name="amount_2" value="21.92" />
<input type="hidden" name="quantity_2" value="1" />
<input type="hidden" name="item_name_3" value="riz thai, blanc" />
<input type="hidden" name="amount_3" value="2.7159995538" />
<input type="hidden" name="quantity_3" value="3" />

<input type="hidden" name="shipping_1" value="7.9" />
<input type="hidden" name="business" value="[email protected]" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="cmd" value="_cart" />
<input type="hidden" name="charset" value="utf-8" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="payer_id" value="2" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="custom" value="33554" />

<input type="hidden" name="return" value="http://www.moncoachbienetre.com/order-confirmation.php?key=05dfbf730d8ea7adf4e939fcda6984ca&id_cart=33554&id_module=4&slowvalidation;" />
<input type="hidden" name="cancel_return" value="http://www.moncoachbienetre.com/index.php" />
<input type="hidden" name="notify_url" value="http://www.moncoachbienetre.com/modules/paypal/validation.php" />
<input type="hidden" name="cpp_header_image" value="http://www.moncoachbienetre.com/userfiles/img/banner-P.gif" />
<input type="hidden" name="rm" value="2" />
<input type="hidden" name="bn" value="PRESTASHOP_WPS" />
<input type="hidden" name="cbt" value="Retour à la boutique" />
</form>
[removed]

$(document).ready(function() {
$('#paypal_form').submit();
});

[removed]

</body>
</html>
Link to comment
Share on other sites

ca cole tout sur la meme ligne. voici la page redirect.php en piece jointe. on y voit le contenu du panier et des prix, quantités, valeurs, mais est-ce au bon format ? je ne sais pas.

désolé de demander cela mais visiblement vu votre site web vous devez savoir :
quel est la différence entre paypal, module gratuit (qui prends 3% des transactions), et les modules payants très cher des grandes banques francaises ?
merci !
nicolas

redirect.php .txt

Link to comment
Share on other sites

Bonjour,

Je ne pourrais vous dire si le format est faux.

Par contre ce que je préconise :

réinstaller le module Paypal d'origine de prestashop, puis si cela ne fonctionne toujours pas se pencher sur la configuration de votre compte Paypal qui pourrait être étrange si vous utilisez ce compte Paypal avec un autre script qui demandait une configuration particulière.

Concernant la différence entre les module de banque l'abonnement VAD et TPE ainsi que leur taxe en comparaison de Paypal, c'est juste que ce n'est pas la même chose et qu'en fonction du pays où vous vendez vos produit les gens préfèrent payer avec Paypal ou par CB, par exemple en France c'est la CB qui prédomine. A terme si vous faites un gros chiffre d'affaire le paiement par CB est moins couteux que Paypal car vous pouvez négocier avec votre banquier, ce qui est impossible avec Paypal.

Link to comment
Share on other sites

merci
j'ai remplacé le module par "un neuf" téléchargé, mais rien n'y fait.
coté paypal, je les appelleraient lundi.
j'aimerais que paypal fonctionne, meme si visiblement c'est fortement conseillé de prendre un module de banque, non ?

pour les autres banques, on m'a deja dit ca, visiblement les banques francaises sont moins chères et rassurent plus les clients francais. a votre avis, je dois prendre le module de la banque : banque populaire ? c'et quoi atos ? une banque ? et moneybookers ? j'aurais aimé societe generale car c'et ma banque.
laquelle est la plus fiable et la moins chère ? merci !

Link to comment
Share on other sites

Concernant Paypal c'est étonnant que cela ne fonctionne pas si vous avez configurr votre compte business comme il faut.

Après concernant les modules de banques, je vous conseil de discuter avec votre banquier car le module pour prestashop n'est lié qu'à votre banque donc c'est avec lui que vous allez discuter des tarifs.

Si vous utilisez la version 1.3 d PS, je vous conseil d'installer Moneybooker qui a une très bonne intégration et qui est légèrement moins cher que Paypal.

Link to comment
Share on other sites

  • 3 weeks later...

Je viens d'être confronté au même problème pour une boutique, utilisant les remises quantitatives (-10% pour 5 articles achetés)

En fait, le prix réduit de l'article n'est pas arrondi, et ça fait hurler paypal.

Donc modification du fichier : /module/paypal/redirect.tpl

avec ajout de l'arrondi (|round:2) sur le prix individuel de l'article

<input type="hidden" name="amount_{$k+1}" value="{$product.price_wt|round:2}" />



Bug sur la dernière version de prestashop. Bizarre tout de même, je pensais que ce bug n'existait plus.
Je viens d'y passer un petit bout de temps pour trouver.

Link to comment
Share on other sites

EDIT : voilà la correction complète à faire

1/ ouvrez le fichier /module/paypal/redirect.tpl
2/ cherchez la ligne

<input type="hidden" name="amount_{$k+1}" value="{$product.price_wt}" />


3/ remplacez cette ligne par
<input type="hidden" name="amount_{$k+1}" value="{$product.price_wt|round:2}" />


Ceci concerne la version 1.3 de prestashop (le fichier est peut-être différent sur une version antérieure, je n'ai pas été voir).
Link to comment
Share on other sites

Alors honte sur moi, je me suis trompé de nom de fichier !!!
Toutes mes excuses pour les remarques moyennement agréables...

donc le fichier en question : /modules/paypal/redirect.tpl (j'édite les posts précédents)

<html>
   <head>
       [removed][removed]
   </head>
   <body>

{$redirect_text}
{$cancel_text}
       <form action="{$paypal_url}" method="post" id="paypal_form" class="hidden">
           <input type="hidden" name="upload" value="1" />
           <input type="hidden" name="address_override" value="1" />
           <input type="hidden" name="first_name" value="{$address->firstname}" />
           <input type="hidden" name="last_name" value="{$address->lastname}" />
           <input type="hidden" name="address1" value="{$address->address1}" />
           {if $address->address2 != NULL}
           <input type="hidden" name="address2" value="{$address->address2}" />
           {/if}
           <input type="hidden" name="city" value="{$address->city}" />
           <input type="hidden" name="zip" value="{$address->postcode}" />
           <input type="hidden" name="country" value="{$country->iso_code}" />
           {if $state != NULL}
           <input type="hidden" name="state" value="{$state->iso_code}" />
           {/if}
           <input type="hidden" name="amount" value="{$amount}" />
           <input type="hidden" name="email" value="{$customer->email}" />
           {if !$discount}
           {foreach from=$products key=k item=product}
           <input type="hidden" name="item_name_{$k+1}" value="{$product.name}{if isset($product.attributes)} - {$product.attributes}{/if}" />
           <input type="hidden" name="amount_{$k+1}" value="{$product.price_wt|round:2}" />
           <input type="hidden" name="quantity_{$k+1}" value="{$product.cart_quantity}" />
           {/foreach}
           <input type="hidden" name="shipping_1" value="{$shipping}" />
           {else}
           <input type="hidden" name="item_name_1" value="{$cart_text}" />
           <input type="hidden" name="amount_1" value="{$total}" />
           <input type="hidden" name="quantity_1" value="1" />
           {/if}
           <input type="hidden" name="business" value="{$business}" />
           <input type="hidden" name="receiver_email" value="{$business}" />
           <input type="hidden" name="cmd" value="_cart" />
           <input type="hidden" name="charset" value="utf-8" />
           <input type="hidden" name="currency_code" value="{$currency_module->iso_code}" />
           <input type="hidden" name="payer_id" value="{$customer->id}" />
           <input type="hidden" name="payer_email" value="{$customer->email}" />
           <input type="hidden" name="custom" value="{$cart_id}" />
           <input type="hidden" name="return" value="http://{$url}order-confirmation.php?key={$customer->secure_key}&id;_cart={$cart_id}&id;_module={$paypal_id}&slowvalidation;" />
           <input type="hidden" name="cancel_return" value="http://{$url}index.php" />
           <input type="hidden" name="notify_url" value="http://{$url}modules/paypal/validation.php" />
           {if $header != NULL}
           <input type="hidden" name="cpp_header_image" value="{$header}" />
           {/if}
           <input type="hidden" name="rm" value="2" />
           <input type="hidden" name="bn" value="PRESTASHOP_WPS" />
           <input type="hidden" name="cbt" value="{$return_text}" />
       </form>
       [removed]
       {literal}
       $(document).ready(function() {
           $('#paypal_form').submit();
       });
       {/literal}
       [removed]
   </body>
</html>

Link to comment
Share on other sites

j'ai une petite question en plus :
je n'arrive plus a acceder a la page des paiements, (avec un compte client que j'ai créé)
j'ai réussi pendant des mois et depuis ce matin, quand je clique sur "paiement" je reste sur "livraisons"
j'ai trop utilisé mon compte fictif ?
(pb cookies ? j'ai vidé les prefs, redémarré, mais rien)
par contre d'autres accèdent bien au paiement. apparemment c'est juste moi qui suis bloqué.
???
merci
nicolas

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour à tous,
J'ai ce problème depuis hier ...
J'ai suivi les conseils qui sont ci-dessus, mais le problème reste entier :
"Le lien que vous avez utilisé pour accéder au système PayPal contient un montant d'objet incorrectement formaté."
Ce que je ne comprend pas, c'est que ça marchait avant, et depuis peu ... ;-(
Suis sous PS 1.3.1.1
Merci pour vos réponses.
Cordialement.

Link to comment
Share on other sites

  • 1 month later...
juste après ce code, j'ai tout le formulaire.
Je viens de vérifier, le code est différent sur la version 1.2.5. Par contre, que ce soit sur 1.2.5 ou 1.3, il y a un formulaire paypal après.


Bonjour,

J'utilise la version 1.2.5 et j'ai effectivement ce problème Paypal lorsque une personne utilise un bon de réduction.
Pouvez-vous me donner la manipe à faire afin de résoudre ce problème sous cette version ?
La monnaie du site est en Yen et le Yen n'est pas une monnaie décimale d'où le problème Paypal. Il me faudrait une manipe qui force Prestashop à arrondir le montant avant la transmission à Paypal.
Sous Prestashop le montant affiché du bon de réduction est bien arrondi (par ex 450Y) mais le montant envoyé à Paypal est de 449,50Y d'où le message d'erreur.

Merci d'avance,
Link to comment
Share on other sites

{$product.price_wt|round:2} pour arrondir à 2
{$product.price_wt|round:0} pour arrondir à 0 (je n'ai pas essayé, mais je ne pense pas qu'il y ait de piège avec le 0)

Toujours sur la page /modules/paypal/redirect.tpl


Merci beaucoup pour votre rapidité mais vous auriez le chemin complet car je ne trouve pas ce module ?
Je suis chez Clicboutic et la version exacte est : PSClic Version 1.2.5.0-0.2.9
J'espère que ça peut vous aider ?
Link to comment
Share on other sites

ca résoud en partie le probleme :
ca résoud le probleme, causé par les petits produits a 3€ - 5% par exemple.
mais vous recevez un paiement paypal auquel il manque 1 centime, (c'est pas grave), et le client recois un email disant qu'il y a un probleme sur le paiement. ca fait mauvais genre !

Link to comment
Share on other sites

  • 3 weeks later...

J'avais le même message d'erreur, je viens de le résoudre en modifiant le fichier paypal.tpl à la ligne 25.
Avant

<input type="hidden" name="quantity_{$i}" value="{$product.quantity}" />



Après

<input type="hidden" name="quantity_{$i}" value="{$product.cart_quantity}" />



Je suis 1.3.1.1

Link to comment
Share on other sites

  • 1 month later...
  • 9 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...