Bonjour,
Merci pour le tuto en POO.
J'ai utilisé le code que 'ai un peu modifier pour l'adapter à un moyen de paiement qui est Paypal.
Tout se passe bien, mais voilà, j'aimerai avoir tous les articles lors d'un achat et je galère pas mal...
Voici le bout de mon code de l'ipn:

<form method="post" action="panier.php">
    <div class="table">
        <div class="wrap">
            <div class="rowtitle">
                <span class="name">Article</span>
                <span class="price">Prix</span>
                <span class="quantity">Quantité</span>
                <span class="subtotal">Prix avec TVA</span>
                <span class="action">Action</span>
            </div>
            <?php
            $ids = array_keys($_SESSION'panier']);

            if(empty($ids)){
                $products = array();
            }else{
                $products = $DB->query('SELECT * FROM products WHERE id IN ('.implode(',',$ids).')');
            }
            foreach($products as $product):

            ?>
            <div class="row">
                <a href="#" class="img"> <img src="img/<?= $product->id; ?>.png" height="53" border="0"></a>
                <span class="name"><?= $product->name; ?></span>
                <span class="price"><?= number_format($product->price,2,',',' '); ?> €</span>
                <span class="quantity"><input type="text" name="panier[quantity]<?= $product->id; ?>]" value="<?= $_SESSION'panier']$product->id]; ?>"></span>
                <span class="subtotal"><?= number_format($product->price * 1.196,2,',',' '); ?> €</span>
                <span class="action">
                    <a href="panier.php?delPanier=<?= $product->id; ?>" class="del"><img src="img/del.png" border="0" title="Supprimer cet article"></a>
                </span>
            </div>

            <?php endforeach; ?>
            <div class="rowtotal">
                Total TTC : <span class="total"><?= number_format($panier->total() * 1.196,2,',',' '); ?> € </span>
            </div>
              <?php if(isset($_SESSION'email'])){ ?> <?php
include("fonction_api.php");
$requete = construit_url_paypal();
$requete = $requete."&METHOD=SetExpressCheckout".
            "&CANCELURL=".urlencode("http://www.xxxxxx.com/cancel.php").
            "&RETURNURL=".urlencode("http://www.xxxxxx.com/success.php").
            "&AMT=".number_format($panier->total()* 1.196,2).
            "&CURRENCYCODE=EUR".
            "&DESC=";
// construction de la description, cela se passe ICI :)
$i=1;
foreach($_SESSION'panier'] as $item => $value ) {
    print_r($value);
    if($i!=1) {
        $requete .= urlencode(" - ") ;
    };
    $requete .= urlencode($value);
    $i++;
} ;
            "&LOCALECODE=FR".
            "&HDRIMG=".urlencode("https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-prn1/524038_217625831675916_1957579408_n.jpg").
            "&CUSTOM=".$_SESSION'id']."";
$ch = curl_init($requete);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resultat_paypal = curl_exec($ch);
if (!$resultat_paypal)
    {echo "<p>Erreur</p><p>".curl_error($ch)."</p>";}
else
{
    $liste_param_paypal = recup_param_paypal($resultat_paypal); // Lance notre fonction qui dispatche le résultat obtenu en un array
    // Si la requête a été traitée avec succès
    if ($liste_param_paypal'ACK'] == 'Success')
    {
        // Redirige le visiteur sur le site de PayPal
        //header("Location: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=".$liste_param_paypal'TOKEN']);

      echo '<a class=buttons_pay href=" https://www.paypal.com/webscr&cmd=_express-checkout&useraction=commit&token='.$liste_param_paypal'TOKEN'].' ">Payer</a>';

                    }
    else // En cas d'échec, affiche la première erreur trouvée.
    {echo "<p>Erreur de communication avec le serveur PayPal.<br />".$liste_param_paypal'L_SHORTMESSAGE0']."<br />".$liste_param_paypal'L_LONGMESSAGE0']."</p>";}       
}
curl_close($ch);
?><?php } else { ?><a href="index.html" class="buttons_pay">Se connecter</a><?php } ?>  <input type="submit" class="buttons" value="Recalculer">
        </div>
    </div>
    </form>

Cela me sort bien les quantités comme cela, mais j'aimerai les articles svp.
Si quelqu'un peut m'aiguiller car là je cherche et je commence à fatiguer :)

Merci par avance.

2 réponses


MaitreYoda
Auteur
Réponse acceptée

Re,
En fait c'est de savoir comment récupérer les noms des articles du panier sur la page panier.php
Merci

MaitreYoda
Auteur
Réponse acceptée

Bon, j'ai trouvé...
Il suffit de refaire un foreach...au niveau du DESC= de l'ipn de Paypal.
++