Webmaster Hub: Gestion du Panier Paypal - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Gestion du Panier Paypal Problème pour afficher le panier paypal Noter : -----

#1 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 15 février 2005 - 10:05

Salut,

Voilà j'ai un pett problème ^^

Durant mon stage je dois faire un site de vente en ligne de matèriel informatique.
Je dois utiliser le mode de paiement paypal et un problème se pose.

Voilà je gère moi même un panier que j'ai généré en php et stocké dans des cookies. A la fin, lorsque le client veut commander, je veux envoyer l'intégralité de mon panier vers le panier paypal et empêcher celui-ci d'être modifié (pour des raisons de facilité de sauvegarde de la commande dans la bdd). Et ensuite je voudrais récupérer le nom, l'adresse, le code postal, la ville, sont n°tel et son email pour constitué ma base de donnée.

Est-ce possible?

Voici le code que j'utilise pour créer mon tableau et comment je tente d'envoyer mon panier :

if(($nbLignes)<1)
	echo '<br /><br /><h2><em>Aucun article n\'a été ajouté au panier.</em></h2>';
else
	{

	// Ouverture de la form du bouton
	echo '<form name="panier" target="paypal" action="https://www.paypal.com/fr/cgi-bin/webscr" method="post">';

	echo '<table class=tabcom width=95% border=1 cellspacing=0 cellpadding=4>';
	echo '<tr>';
	echo '<td><b>Reférence</b></td>';
	echo '<td><b>Désignation</b></td>';
	echo '<td><b>Prix Unitaire</b></td>';
	echo '<td><b>Quantité</b></td>';
	echo '<td><b>Montant</b></td>';
	echo '<td><b>Modification</b></td>';
	echo '<td><b>Suppression</b></td>';
	echo '</tr>';
	if ($connexion)
  {
  $db;
  $RechercheNb=$nbLignes;
  $prod_choix = 0;
  $total=0;
  $qtecommande=0;
  for($i=1;$i<=$nbLignes;$i++)
 	 {
 	 $posFin=strpos($commande,'#');
 	 $article=substr($commande,0,$posFin);
 	 $commande=substr($commande,$posFin+1);
 	 $posQte=strpos($article, '*');
 	 $ref=substr($article,0,$posQte);
 	 $qte=substr($article,$posQte+1,$posFin);
 	 $requete="select produit_designation, produit_prix from produit where produit_reference='".$ref."';";
 	 $produit=mysql_query($requete);
 	 while ($valeursPdt=mysql_fetch_row($produit))
    {
    $des=$valeursPdt[0];
    $prix=$valeursPdt[1];
    }
 	 $montant=$qte*$prix;
 	 $total=$total+$montant;
 	 $qtecommande=$qtecommande+$qte;
 	 echo '<tr>';
 	 echo '<td>'.$ref.'</td>';
 	 echo '<td>'.$des.'</td>';
 	 echo '<td align="right">'.$prix.'€</td>';
 	 echo '<td align="center"><input type=text align="right" size=3 name="prod_qte" value='.$qte.'></td>';
 	 echo '<td align="right">'.$montant.'€</td>';
 	 echo '<td align="center">';
 	 echo '<a href="javascript:void(0)" onclick="javascript:modifPanier('.$prod_choix.','.$RechercheNb.'
)">Mettre à Jour</a>';
 	 echo '</td>';
 	 echo '<td align="center">';
 	 echo '<a href="javascript:void(0)" onclick="javascript:supprPanier('.$prod_choix.','.$RechercheNb.'
)">Supprimer</a>';
 	 echo '</td>';

 	 // Information pour le panier PayPal
 	 if ($nbLignes==1)
    {

    // S'il n'y a qu'un seul produit à envoyer, il n'y a aucun problème.
    echo '<input type="hidden" name="item_name" value="'.$des.'">';
    echo '<input type="hidden" name="item_number" value="'.$ref.'">';
    echo '<input type="hidden" name="amount" value="'.$prix.'">';
    echo '<input type="hidden" name="quantity" value="'.$qte.'">';
    echo '<input type="hidden" name="no_note" value="1">';
    }
 	 else
    {

    // Lorsqu'il y a plusieurs produits, il m'est indiqué que mon panier est vide et qu'il faut que je donne un montant.
    $prod_choix++;
    echo '<input type="hidden" name="item_name_'.$prod_choix.'" value="'.$des.'">';
    echo '<input type="hidden" name="item_number_'.$prod_choix.'" value="'.$ref.'">';
    echo '<input type="hidden" name="amount_'.$prod_choix.'" value="'.$prix.'">';
    echo '<input type="hidden" name="quantity_'.$prod_choix.'" value="'.$qte.'">';
    echo '<input type="hidden" name="no_note_'.$prod_choix.'" value="1">';
    }
 	 echo '</tr>';
 	 }

  // Déclarations uniques nécessaires pour le panier paypal
  echo '<input type="hidden" name="add" value="'.$nbLignes.'">';
  echo '<input type="hidden" name="cmd" value="_cart">';
  echo '<input type="hidden" name="business" value="'.$adresse.'">';
  echo '<input type="hidden" name="currency_code" value="EUR">';

  }
	mysql_close($connexion);
	echo '<tr>';
	echo '<td align="right" colspan=3><b>Total</b></td>';
	if ($qtecommande<=1)
  {echo '<td align="right">'.$qtecommande.' article</td>';}
	else
  {echo '<td align="right">'.$qtecommande.' articles</td>';}
	echo '<td align="right">'.$total.'€</td>';
	// Bouton Paypal
	echo '<td colspan=2 align="center">';
	echo '<input type="image" src="https://www.paypal.com/fr_FR/i/btn/view_cart.gif" border="0" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée !">';
	echo '</td>';
	echo '</tr>';
	echo '</table>';
	echo '<br />';
	// Fin de la form du bouton PayPal
	echo '</form>';
	echo '<br />';
	echo '</div>';


Voilà j'espère que c'est assez compréhensible.
0

#2 L'utilisateur est hors-ligne   Xavfun 

  • Vainqueur du concours "ornithorynque polyglotte"
  • Groupe : Membre
  • Messages : 1 305
  • Inscrit(e) : 20-avril 04
  • Genre:Homme
  • Localisation:Paris
  • Société:http://www.xavfun.com

Posté 15 février 2005 - 12:05

Hello,

pour la partie PHP, je peux pas t'aider, mais par contre le problème rencontré par Paypal est qu'il ne gère pas les caractères accentués.

Ce qui pose souvent problème pour passer commande, par exemple si dans l'adresse il y a un accent :

12 rue de rivière => plantage et payment Paypal impossible
12 rue de la riviere => c'est ton bon

Bonne chance, je sais pas si ça pourra t'aider, moi ça m'a déjà bloqué pour payer avec Paypal (j'ai du changer d'adresse pour pouvoir commander :D )
Annuaire FuN avec liens en dur....
Découvrez la face cachée de vos Consoles de Jeux

news consoles de jeux
0

#3 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 15 février 2005 - 14:02

Euh non, le problème vient pas de là :unsure:
Pour l'instant je lui envoie que des valeurs sans accentuation :wacko:
Merci quand même :P
Avec ce code je reçois toujours "Veuillez entrer un montant supérieur à zéro." même après avoir entré manuellement les informations nécessaires:

echo '<input type="hidden" name="add" value="'.$nbLignes.'">';
echo '<input type="hidden" name="cmd" value="_cart">';
echo '<input type="hidden" name="business" value="'.$adresse.'">';
echo '<input type="hidden" name="currency_code" value="EUR">';
//test
echo '<input type="hidden" name="item_name_1" value="livre1">';
echo '<input type="hidden" name="item_number_1" value="ABCDEF">';
echo '<input type="hidden" name="amount_1" value="15">';
echo '<input type="hidden" name="quantity_1" value="2">';
echo '<input type="hidden" name="no_note_1" value="1">';
echo '<input type="hidden" name="item_name_2" value="livre2">';
echo '<input type="hidden" name="item_number_2" value="GHIJK">';
echo '<input type="hidden" name="amount_2" value="10">';
echo '<input type="hidden" name="quantity_2" value="3">';
echo '<input type="hidden" name="no_note_2" value="1">';

Ce message a été modifié par XenoDeus - 15 février 2005 - 16:04.

0

#4 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 17 février 2005 - 09:53

Personne ne comprend mon problème :'( ça fait une semaine que j'y suis deçu :'( :wacko:
0

#5 L'utilisateur est hors-ligne   Dan 

  • Webmaster
  • Voir le blog
  • Voir la galerie
  • Groupe : Direction
  • Messages : 22 946
  • Inscrit(e) : 18-août 03
  • Genre:Homme
  • Localisation:St Anne, Alderney
  • Société:Webmaster Hub Ltd.

Posté 17 février 2005 - 11:38

XenoDeus, le jeudi 17 février 2005, 09h53, dit :

Personne ne comprend mon problème :'( ça fait une semaine que j'y suis deçu :'(  :wacko:
<{POST_SNAPBACK}>

Bonjour,

Non, pas vraiment :(

En regardant sur le site Paypal, tout ce que je trouve c'est comment ajouter UN SEUL item dans le panier (avec une quantité pouvant être différente de 1 bien sûr) ... et pas toute une série à la fois.
Le formulaire d'ajout a un champ nommé "amount" et je n'ai pas trouvé de champ "amount_1", "amount_2", etc.

Est-ce que ton problème ne viendrait pas de là ?... du fait que la variable "amount" n'est pas déclarée, elle est donc nulle.

Dan
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Si la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi. - Albert Einstein -
Infogérance de serveurs dédiés OVH
0

#6 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 17 février 2005 - 14:26

Hum lol, je viens de remarquer un truc en relisant le guide d'intégration de paypal lol. Je me référait au chapitre d'"envoie du montant total" page 56 mais j'étais arrivé à la page suivante par recherche qui indiqué pour insérer plusieurs produits dans ce document. :boude: Je crois que je peux sauter par la fenêtre lol
Je crois pas qu'on peut remplir d'un seul coup tout le panier. Je peux juste envoyer la somme totale. :D
Merci Dan ^^

Edit:
Par contre, vous connaissez le code que je devrais utiliser pour pouvoir récuperer des informations sur le client lorsqu'il passe une commande afin que je puisse les gérer dans ma bases de données? Je voudrais garder le nom, l'adresse de livraison, le num tel, l'email ... voilà ^^

Ce message a été modifié par XenoDeus - 17 février 2005 - 14:33.

0

#7 L'utilisateur est hors-ligne   Dan 

  • Webmaster
  • Voir le blog
  • Voir la galerie
  • Groupe : Direction
  • Messages : 22 946
  • Inscrit(e) : 18-août 03
  • Genre:Homme
  • Localisation:St Anne, Alderney
  • Société:Webmaster Hub Ltd.

Posté 17 février 2005 - 16:29

XenoDeus, le jeudi 17 février 2005, 14h26, dit :

Je crois pas qu'on peut remplir d'un seul coup tout le panier. Je peux juste envoyer la somme totale.  :D
<{POST_SNAPBACK}>
C'est bie ce qu'il me semblait... Paypal est un système de paiement, pas autre chose. ;)

Mais j'ai vu qu'ils ont toutefois un système de caddie... il doit donc être possible d'insérer les articles un à un.

Pour les infos à récupérer dans la base de données, quel est ton problème ?
Dans la mesure où tu as ces infos à disposition, il suffit de passer par une page intermédiaire qui insèrera ces données en base, avant la validation du caddie et l'appel de la page de règlement Paypal.

Dan
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Si la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi. - Albert Einstein -
Infogérance de serveurs dédiés OVH
0

#8 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 17 février 2005 - 17:05

J'ai essayé une fois d'envoyer en boucle chaque article lorsque je voulais valider la commande mais euh ça a pas trop plus à IE lol, ça ramé à mort avant de m'afficher un message d'erreur: un script est en cours, voulez vous l'arreter, sinon vous risquez de ne plus avoir de réponse de l'ordi ... (un truc comme ça). :D

Là je lui ai défini un montant qui est le montant totale: lorsque je clique, il m'ouvre une fenêtre paypal avec un tableau contenant un champ quantité:1 , un champ pour supprimer, un champ vide (là où est censé être la désignation), le champ option vide et le champ prix qui contient le montant total.
Je me suis dit, c'est peut être normale.

J'ai donc continué: validation et paiement sécurisé.
Lorsque je veux voir le contenu de mon panier et il réaffiche la même chose... Est-ce que c'est normale? ou le détail sera affiché après ??? :wacko:

Y a t-il un moyen de tester sans payer?

Y a t-il aussi un moyen que le site soit intégralement en français? car lorsque j'accepte la commande, la page suivante est en anglais (bon il suffit de rajouter "fr/" apres "http://www.paypal.com/" mais bon pour le client :(

Edit:
Et à propos des infos que je veux savoir concernant le client, si celui-ci est déjà enregistré auprès de paypal, cela lui sera fastidieux, à moins que je lui crée un compte qu'il remplie une fois ^^ mais le problème c'est que s'il rentre n'importe quoi dans son formulaire d'inscription (alors qu'il sera obligé d'utiliser les bonnes informations sur paypal ^^). Je voudrais au moins récupérer l'adresse de livraison par paypal afin de la comparer avec celle enregistrée dans la base et mettre à jour si nécessaire.

Ce message a été modifié par XenoDeus - 17 février 2005 - 17:18.

0

#9 L'utilisateur est hors-ligne   Dan 

  • Webmaster
  • Voir le blog
  • Voir la galerie
  • Groupe : Direction
  • Messages : 22 946
  • Inscrit(e) : 18-août 03
  • Genre:Homme
  • Localisation:St Anne, Alderney
  • Société:Webmaster Hub Ltd.

Posté 17 février 2005 - 17:07

Tu peux tester en payant 1 Euro, et en annulant le paiement ensuite ;)
Ils n'ont malheureusement pas d'interface de test.
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Si la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi. - Albert Einstein -
Infogérance de serveurs dédiés OVH
0

#10 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 17 février 2005 - 17:24

On peut utiliser le même compte?
Je veux dire j'achète chez moi :wacko:
0

#11 L'utilisateur est hors-ligne   Dan 

  • Webmaster
  • Voir le blog
  • Voir la galerie
  • Groupe : Direction
  • Messages : 22 946
  • Inscrit(e) : 18-août 03
  • Genre:Homme
  • Localisation:St Anne, Alderney
  • Société:Webmaster Hub Ltd.

Posté 17 février 2005 - 18:18

XenoDeus, le jeudi 17 février 2005, 17h24, dit :

On peut utiliser le même compte?
Je veux dire j'achète chez moi  :wacko:
<{POST_SNAPBACK}>

Non , je ne pense pas que ce soit possible :(
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Si la pratique et la théorie sont réunies, rien ne fonctionne et on ne sait pas pourquoi. - Albert Einstein -
Infogérance de serveurs dédiés OVH
0

#12 L'utilisateur est hors-ligne   XenoDeus 

  • Groupe : Membre
  • Messages : 7
  • Inscrit(e) : 14-février 05
  • Localisation:Marseille

Posté 18 février 2005 - 10:18

Youpi :hourra:

J'ai réussi :hourra:

J'ai réussi à envoyer le contenu complet du panier et aller directement au paiement sans que le client puisse modifier :hourra:

:lol:

    	// Information pour le panier PayPal
    	if ($nbLignes==1)
      {
      echo '<input type="hidden" name="add" value="1">';
      //echo '<input type="hidden" name="upload" value="1">'; ne semble pas fonctionner pour un seul produit :(
      echo '<input type="hidden" name="item_name" value="'.$des.'">';
      echo '<input type="hidden" name="item_number" value="'.$ref.'">';
      echo '<input type="hidden" name="amount" value="'.$prix.'">';
      echo '<input type="hidden" name="quantity" value="'.$qte.'">';
      echo '<input type="hidden" name="no_note" value="1">';
      }
    	else
      {
      $prod_choix++;
      echo '<input type="hidden" name="upload" value="'.$prod_choix.'">';
      echo '<input type="hidden" name="item_name_'.$prod_choix.'" value="'.$des.'">';
      echo '<input type="hidden" name="item_number_'.$prod_choix.'" value="'.$ref.'">';
      echo '<input type="hidden" name="amount_'.$prod_choix.'" value="'.$prix.'">';
      echo '<input type="hidden" name="quantity_'.$prod_choix.'" value="'.$qte.'">';
      echo '<input type="hidden" name="no_note_'.$prod_choix.'" value="1">';
      }
    echo '</tr>';
    }
  	echo '<input type="hidden" name="cmd" value="_cart">';
  	echo '<input type="hidden" name="business" value="'.$adresse.'">';
  	echo '<input type="hidden" name="currency_code" value="EUR">';
  	}


Maintenant, il faut que je récupère l'accusé de réception pour savoir s'il la commande a bien été validé afin de valider la commande dans ma base de donnée. Vous savez comment le faire?

Au fait, j'ai entendu parler d'ipn : kesako ???? :wacko:


Edit: Ben je viens de me rendre compte que je n'avais pas besoin de gérer s'il n'y a qu'un seul produit.

// Information pour le panier PayPal
   	 //if ($nbLignes==1)
      //{
      //echo '<input type="hidden" name="upload" value="1">';
      //echo '<input type="hidden" name="item_name_1" value="'.$des.'">';
      //echo '<input type="hidden" name="item_number_1" value="'.$ref.'">';
      //echo '<input type="hidden" name="amount_1" value="'.$prix.'">';
      //echo '<input type="hidden" name="quantity_1" value="'.$qte.'">';
      //echo '<input type="hidden" name="no_note_1" value="1">';
      //}
   	 //else
      //{
      $prod_choix++;
      echo '<input type="hidden" name="upload" value="'.$prod_choix.'">';
      echo '<input type="hidden" name="item_name_'.$prod_choix.'" value="'.$des.'">';
      echo '<input type="hidden" name="item_number_'.$prod_choix.'" value="'.$ref.'">';
      echo '<input type="hidden" name="amount_'.$prod_choix.'" value="'.$prix.'">';
      echo '<input type="hidden" name="quantity_'.$prod_choix.'" value="'.$qte.'">';
      echo '<input type="hidden" name="no_note_'.$prod_choix.'" value="1">';
      //}

Ce message a été modifié par XenoDeus - 18 février 2005 - 11:26.

0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)