Proplème Paypal

14 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

 

J'utilise la version premium 6.3.1 lorsqu'un client choisi de payer via Paypal voici le message qu'il obtient à la fin de sa commande juste avant de cliquer sur le bouton "Acheter maintenant"

 

Notice: A non well formed numeric value encountered in /var/www/vhosts/dentaireprive.fr/subdomains/test/httpdocs/modules/paypal/fonctions.php on line 38

 

De plus lorsque l'on clique, le montant à payer est de 1€ alors que la commande fait bien plus que ça.

 

Avez-vous une idée du problème ?

 

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

le montant transmit à la fonction getPaypalForm n'est pas formaté correctement. Pouvez-vous vérifier que l'appel à cette fonction dans le fichier lib/fonctions/order.php correspond bien à cette ligne (ligne 1209 sur votre version) :

	' . getPaypalForm($order_id, $_SESSION['session_langue'], fprix($amount_to_pay, false, $com->devise, true, $com->currency_rate, false, true, '.'), $_SESSION['session_devise']['code'], $com->email, 1, '', $_SESSION['session_utilisateur']['id_utilisateur'], $com->prenom_ship, $com->nom_ship, $com->adresse_ship, $com->zip_ship, $com->ville_ship, $com->pays_ship, $com->telephone_ship) . '

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

C'était bien ça, le problème est résolu.

 

Merci beaucoup !

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Maintenant le problème se pose pour les montants à partir de 1000€.

 

Lorsque le panier atteint 1000€ le montant transmis à Paypal est 1€.

 

Pouvez-vous m'aider ?

 

Cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

 

Dans la fonction getPaypalForm, vous pouvez remplacer 

    <input type="hidden" name="amount" value="' . number_format($amount, 2) . '" />

par 

    <input type="hidden" name="amount" value="' . round($amount, 2) . '" />

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci, pouvez-vous me dire dans quel fichier il faut faire la modification ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

La fonction getPaypalForm est modifiable dans le fichier modules/paypal/fonctions.php

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

J'ai fait la modification mais j'ai toujours le même problème quand le montant est supérieur à 999€ il indique 1€ dans paypal lorsque qu'il y a 1 article mais s'il y a 2 articles et que le montant est supérieur à 999e il indique 2€ !

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Alors dans le formulaire de Paypal le champ qui doit normalement contenir le montant, contient à mon avis la quantité

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Oui mais le problème ne se pose pas quand le montant est inférieur à 1000€. C'est bizarre non ?

 

function getPaypalForm($order_id, $lang, $amount, $currency_code, $user_email, $payment_times = 1, $sTexteLibre = '', $user_id, $prenom_ship, $nom_ship, $adresse_ship, $zip_ship, $ville_ship, $pays_ship, $telephone_ship)
{
 $form = '
<form id="paypalForm" action="https://www.paypal.com/cgi-bin/webscr" method="post">
 <input type="hidden" name="charset" value="'.GENERAL_ENCODING.'">
 <input type="hidden" name="cmd" value="_ext-enter" />
 <input type="hidden" name="redirect_cmd" value="_xclick" />
 <input type="hidden" name="business" value="' . String::str_form_value(vb($GLOBALS['site_parameters']['email_paypal'])) . '" />
 <input type="hidden" name="item_name" value="' . String::str_form_value($GLOBALS['site'] . ' COMMANDE ' . $order_id) . '" />
 <input type="hidden" name="item_number" value="' . intval($order_id) . '" />
 <input type="hidden" name="amount" value="' . round($amount, 2) . '" />
 <input type="hidden" name="page_style" value="Primary" />
 <input type="hidden" name="no_shipping" value="1" />
 <input type="hidden" name="first_name" value="' . String::str_form_value($prenom_ship) . '">
 <input type="hidden" name="last_name" value="' . String::str_form_value($nom_ship) . '">
 <input type="hidden" name="address1" value="' . String::str_form_value($adresse_ship) . '">
 <input type="hidden" name="zip" value="' . String::str_form_value($zip_ship) . '">
 <input type="hidden" name="city" value="' . String::str_form_value($ville_ship) . '">
 <input type="hidden" name="country" value="' . String::str_form_value($pays_ship) . '">
 <input type="hidden" name="return" value="' . String::str_form_value($GLOBALS['wwwroot'] . '/modules/paypal/ok.php?id=' . $order_id) . '" />
 <input type="hidden" name="cancel_return" value="' . String::str_form_value($GLOBALS['wwwroot'] . '/modules/paypal/nok.php?id=' . $order_id) . '" />
 <input type="hidden" name="notify_url" value="' . String::str_form_value($GLOBALS['wwwroot'] . '/modules/paypal/ipn.php') . '" />
 <input type="hidden" name="no_note" value="1" />
 <input type="hidden" name="currency_code" value="' . String::str_form_value($currency_code) . '" />
 <input type="hidden" name="lc" value="' . String::str_form_value(strtoupper($lang)) . '" />
 <input type="hidden" name="email" value="' . String::str_form_value($user_email) . '" />
 <input type="image" src="' . String::str_form_value(PAYPAL_BOUTON) . '" border="0" name="submit" alt="' . String::str_form_value(PAYPAL_BUTTON_ALT) . '" />
</form>

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ok, il faut peut-être regarder dans la table de ta base

 

Il faut trouver à quoi correspond $amount dans le code

 

ensuite trouve ce champ dans la table peel_commandes je crois et regarde la valeur de la colonne TYPE et Défaut

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

D'après ce que j'ai pu voir il s'agit du champ "montant" dans la table peel_commande sur lequel on applique la fonction fprix ()

 

fprix($amount_to_pay, false, $com->devise, true, $com->currency_rate, false, true, '.')

 

Le type est float(15,5)

et Défaut : 0.00000

 

Avez-vous une idée du problème ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

 

Sur la version actuelle, la fonction getpaypalform prend en paramètre le prix formaté de cette manière : 

fprix($amount_to_pay, false, $com->devise, true, $com->currency_rate, false, false)

=> vous pouvez modifier l'appel de la fonction dans le fichier lib/fonctions/order.php en utilisant ce formatage du prix

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

C'était bien ça !

 

Merci pour votre aide

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping