Bonjour a tous,
j'ai mis en place un système de paiement Paypal sur un template de site marchand que je créé a l'aide de cakephp, le paiement s'effectue correctement.
Le soucis que j'ai est lors du retour de Paypal, je veux enregistrer la commande en incluant le contenu qui était dans le panier lors de celle-ci affin de pouvoir y accéder depuis l'interface de l'utilisateur et depuis l'administration pour pouvoir livrer le client.
J'ai essayé de récupérer le panier dans la session mais sans succes.

C'est pourquoi je viens vers vous affin de trouver de nouvelles idées ou solution car a force de chercher je m'y perd un peu.
merci :)

4 réponses


Salut,
Quand tu effectues l'envoi vers paypal, tu peux envoyer du contenu dans la variable custom (ID de chaque produits par exemple).
Paypal te renverra la variable apres paiement.

moket
Auteur

c'est ce que j'ai fait pour envoyer les id et quantité mais niveau du traitement après je sèche un peu

Voici le code de l'envoie vers paypal

if(!empty($this->request->data)){
            $this->loadModel('Panier');
            $price = number_format(CakeSession::read('Price.total'),2);
            $ids = array_keys(CakeSession::read('Panier'));
            $qte = CakeSession::read('Panier');
            $ids = implode(',',$ids);
            $qte = implode(',',$qte);
            $this->loadModel('Transaction');
            $url = $this->Transaction->requestPaypal($price,"Commande de $price €","action=proceed&uid=$uid&price=$price&content=$ids&qte=$qte");
            if($url){
                $this->redirect($url);
            }
        }

ce qui m'envoie les $ids et $qte sous cette forme

$ids=id1,id2,id3

et

$qte=qte1,qte2,qte3

que je sauvegarde avec ce code

$price = $custom'price'];
                                $ids = $custom'content'];
                                $qte = $custom'qte'];
                                $uid = $custom'uid'];
                                if($payment_ht == $price){
                                    $this->Transaction->save(array(
                                        'price' => $payment_ht,
                                        'tax' => $payment_tax,
                                        'txnid' => $txn_id,
                                        'user_id' => $uid,
                                        'action' => 'proceed',
                                        'name' => $name,
                                        'country' => $country,
                                        'city' => $city,
                                        'adress'    => $address,
                                        'content'   => $ids.':'.$qte //Ici
                                    ));

                                }

mais pour les récupérer je ne voie pas trop comment m'y prendre ou alors peut être que ma méthode n'est pas la bonne

C'est très simple maintenant que tu as les ids. Il te suffit juste de faire un find sur ta table produit afin de récupérer les informations concernant chaque produit.

<?php
    $data'products'] = $this->Produit->find('all',
        array(
            'conditions' => array(
                'Produit.id' => $ids
            )
        )
    );
?>

Ce code là, devrait normalement te renvoyer la liste des produits associé à tes ids. Pour le reste c'est basique je pense.

moket
Auteur

Ah oui ok je vois l'idée je dois récupérer mes ids et qte en faisant un explode ?