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 :)
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.
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.