Bonsoir tous le monde,
Je reviens vers vous après de nombreuses tentatives de mon côté..
J'ai intégré l'API paypal à mon cake php, tout marche bien de ce côté là.
Je fais encore mes essais sous sandbox, une fois le panier validé et la redirection vers sandbox pour effectuer le paiement, j'insert dans la BDD un premier enregistrement de la commande du client avec le contenu du panier serialisé, une référence commande, l'id de l'utilisateur, la date de commande.
L'insert ce passe bien en BDD, et ensuite dans ma fonction notify de mon controller paypal après les vérifications :

if (strcmp ($res, "VERIFIED") == 0) {
// vérifier que payment_status a la valeur Completed
if ( $payment_status == "Completed") {

if ( $email_account == $receiver_email) {
if($payment_amount == $custom'price']){

Je cherche à faire un update juste après, pour modifier le statut de la commande en completed, la date de paiement et enregistrer les infos de paypal contenu dans POST. Pour cela j'ai fais passer auparavant la ref de la commande dans la variable $_POST de paypal , d'ou ma requete SQL pour aller la chercher :

$d = $this->Commande->find('first',array('conditions'=>array('ref'=>$custom'ref'])));

ensuite je déclare mes modifications :

$d'Commande']'paypal_data'] = serialize($_POST);
    $d'Commande']'etat'] = $payment_status;
    $this->Commande->save($d);

Et bien au lieu de me faire un update sur la ligne, je me retrouve avec une nouvelle commande, contenant uniquement paypal_data et l'état de celle-ci.

Quelqu'un à t'il une idée ? Merci d'avance.

1 réponse


flo69
Auteur
Réponse acceptée

C'est bon j'ai réussi, simplement ma réf commande qui ne correspondait pas entre l'enregistrement bdd et le retour paypal de $custom...
+++