Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 00h58   #1
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Par défaut Bouton achat paypal.

Bonjours,

J'essaye de faire un bouton "acheter" via paypal, je vais une simple boucle dans le code suivant pour que paypal affiche tous mes produits, donc sa devrai marcher.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">   
<input name="return" type="hidden" value="http://mondomaine/paiementValide.php" />
<input name="cancel_return" type="hidden" value="http://mondomaine/paiementAnnule.php" />
<input name="notify_url" type="hidden" value="http://mondomaine/validationPaiement.php" />
<input name="cmd" type="hidden" value="_xclick" />
<input name="currency_code" type="hidden" value="EUR" />
<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="<?php echo $prenom; ?>" />
<input type='hidden' value="<?php echo MontantGlobal(); ?>" name="amount" />
<input name="tax" type="hidden" value="0.00" />
<input name="shipping" type="hidden" value="0.00" />
 
        <?php
        if (creationPanier()) {
            $nbArticles=count($_SESSION['panier']['libelleProduit']);
            if ($nbArticles <= 0) echo '';
            else {
                for ($i=0; $i<$nbArticles; $i++) { 
				?>  
<!-- Paypal-->
<input name="item_name<?php echo $i++; ?>" type="hidden" value="<?php echo htmlspecialchars($_SESSION['panier']['libelleProduit'][$i]); ?>" />
<!-- Paypal-->
         <?php } ?>
<input alt="Acheter Maintenant" 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>
        <?php }
		}
		?>
Donc le formulaire dans le code source donne sa :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="http://mondomaine/paiementValide.php" name="return">
<input type="hidden" value="http://mondomaine/paiementAnnule.php" name="cancel_return">
<input type="hidden" value="http://mondomaine/validationPaiement.php" name="notify_url">
<input type="hidden" value="monbiz_1305056910_biz@gmail.com" name="business">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="EUR" name="currency_code">
<input type="hidden" value="1" name="no_note">
<input type="hidden" value="FR" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="hidden" value="test" name="custom">
<input type="hidden" name="amount" value="7">
<input type="hidden" value="0.00" name="tax">
<input type="hidden" value="0.00" name="shipping">
<input type="hidden" value="65" name="item_name">
<input type="hidden" value="1" name="item_name">
<input type="hidden" value="2" name="item_name">
<input type="image" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" name="submit" alt="Acheter Maintenant">
<img height="1" border="0" width="1" alt="" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif">
</form>

On peut donc voir que ma boucle fonctionne bien, puisque tous mes articles sont affiché
Code :
1
2
3
4
5
6
7
 
<input type="hidden" name="amount" value="7">
<input type="hidden" value="0.00" name="tax">
<input type="hidden" value="0.00" name="shipping">
<input type="hidden" value="65" name="item_name">
<input type="hidden" value="1" name="item_name">
<input type="hidden" value="2" name="item_name">
Mais lorsque je clique sur "acheter", paypal ne m'affiche qu'un article.

S'il vous plait quelqu'un pourrai me dire ou je fais fausse route ?

Merci
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h35   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu ne dois pas avoir plusieurs champs avec le même nom.

Une seconde de recherche indique qu'il faut suffixer avec un numéro par object _x
https://www.paypal.com/cgi-bin/websc...eckout-outside
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 12h17   #3
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Alors pour un panier normal.

Donc un produit se caracterise par :
Code :
1
2
3
4
 
Nom
Quantitie
Prix
Donc dans la boucle je dois mettre sa par ?
Code :
1
2
3
4
 
<input name="item_name_<?php echo $i; ?>" type="hidden" value="<?php echo $itemName; ?>" />
<input name="shipping_<?php echo $i; ?>" type="hidden" value="0.00" />
<input name="amount_<?php echo $i; ?>" type='hidden' value="<?php echo $currentCount; ?>" />
$i s'incremente automatiquement et commence par un.

Donc sa, sa ne marche pas.
Il faut rajouter d'autre chose dans la boucle ?

Pour aider voici le code HTML du resultat du formulaire.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<input type="hidden" value="http://mondomaine/paiementValide.php" name="return">
<input type="hidden" value="http://mondomaine/paiementAnnule.php" name="cancel_return">
<input type="hidden" value="http://mondomaine/validationPaiement.php" name="notify_url">
<input type="hidden" value="monbiz_1305056910_biz@gmail.com" name="business">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="EUR" name="currency_code">
<input type="hidden" value="1" name="no_note">
<input type="hidden" value="FR" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="hidden" value="test" name="custom">
<input type="hidden" value="0.00" name="tax">
<input type="hidden" value="1" name="item_name_1">
<input type="hidden" value="0.00" name="shipping_1">
<input type="hidden" value="1" name="amount_1">
<input type="hidden" value="65" name="item_name_2">
<input type="hidden" value="0.00" name="shipping_2">
<input type="hidden" value="2" name="amount_2">
<input type="hidden" value="2" name="item_name_3">
<input type="hidden" value="0.00" name="shipping_3">
<input type="hidden" value="1" name="amount_3">
<input type="image" src="https://www.paypal.com/fr_FR/FR/i/btn/btn_buynow_LG.gif" name="submit" alt="Acheter Maintenant">
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h40   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
$i s'incremente automatiquement et commence par un.
Donc sa, sa ne marche pas.
Je ne vois pas le lien entre les deux phrases.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 19h25   #5
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Deux chose diferente desolé c'est mal dit.

En faite j'incremente $i pour bien faire item_name_1 ....


Le marche pas c'estest pour dire que, du coup sa ne m'affiche plus aucun article.

Mais franchement je vois pas d'ou provient l'erreur
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 19h36   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu n'as pas lu le lien que je t'ai fourni, point n°1
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 19h46   #7
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Et bien si, j'ai fais comme cité.

Regarde le resultat de mon formulaire, j'ai bien rajouté le _x...
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h07   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
point n°1
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h15   #9
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Donc le point 1 dit qu'on peut peut pas afficher les diferent produits d'un panier.

Donc ma question, comment afficher les diferents produits.

Parce que il est bien evident que els cliens si il ne peuvent pas verifier leur achat ne vont pas acheter !
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h19   #10
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
ça c'est la méthode 1.
Toi tu es sur la méthode 2, celle qui parle d'envoyer plusieurs objets, celle avec notre histoire de _x, celle dont le premier point indique de changer la valeur du champs "cmd".

Pourquoi c'est moi qui doit me lire la documentation de paypal ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 22h48   #11
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Oh oh sa marche.

Merci


Par contre comment on fait maintenant pour passer en test réel, parce que actuellement c'est en mode sanbox de paypal pour simuler.

J'ai essayer de replacer sa :
Code :
1
2
 
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
Par sa :
Code :
1
2
 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
Mais j'obtiens cette erreur :
Code :
1
2
3
4
5
 
Bad Request
 
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h46.


 
 
 
 
Partenaires

Hébergement Web