Bonjour,
j'ai un problème avec le paiement express de paypal, je m'explique sur la page de rtour de mon site après payement chez paypal, je voudrais anregistrer le montant du paiement et le nom du client pour pouvoir l'utiliser après;
voici mon code mais apparemment ça ne marche pas le client est redirigé sur mon site mais je ne n'arrive pas recuperé les infos du client( le montant du produits acheter, le nom du client...).

function paypal_cancel($id=null) {
        $this->layout = 'clean';    
        $this->render('paypal_back');   
    }

    /*
     *redirects buyer after the buyer approves the payment
     */
    function paypal_return($id=null) {
        $this->loadModel('User');
        $this->loadModel('Cursus');
        $cursus=$this->Cursus->find('all',array(
        'fields'=>array('montant','libele')
        ));
        debug($cursus);die();

        $user=$this->User->find('all',array(
        'fields'=>array('id','nom','prenom'),
         ));
        debug($user);die();
        $montant=number_format($cursus'Cursus']'montant']);
        $montant= $cursus'Cursus']'montant'];
        $libele=$cursus'Cursus']'libele'] ;

            $payerId = $this->params'url']'PayerID'];
            $token = $this->params'url']'token'];  
            //get nvp string
            //use your own logic to get and set each variable

            $nvpStr=
                 "TOKEN=$token&PAYERID=$payerId"
                ."&PAYMENTREQUEST_0_CURRENCYCODE=EUR"
                ."&PAYMENTREQUEST_0_AMT=$montant"  
                ."&PAYMENTREQUEST_0_ITEMAMT=$montant"
                ."&PAYMENTREQUEST_0_PAYMENTACTION=Sale"
                ."&L_PAYMENTREQUEST_0_ITEMCATEGORY0=Digital"  
                ."&L_PAYMENTREQUEST_0_NAME0=$libele"
                ."&L_PAYMENTREQUEST_0_QTY0=1"
                ."&L_PAYMENTREQUEST_0_AMT0=$montant"
                ;

            //do paypal setECCheckout
            App::import('Model','Paypal');
            $paypal = new Paypal();
            if($paypal->doExpressCheckoutPayment($nvpStr)) {
                $result = true;
            }else {
                $this->log($paypal->errors);
                $result = false;

            }       

            if (false==$result) {
                $this->Session->setFlash(__('Erreur avec le paiement, Veuillez reessayer', true),'message_fail');
            } else {
                $this->Session->setFlash(__('Merci pour votre commande.', true),'message_ok');

            }          

            $this->render('paypal_back');  

    }

merci

2 réponses


Grafikart
Réponse acceptée

Si tu veux les infos de paiements il faut appeller GetExpressCheckoutDetails en lui envoyant le token de paiement

wenz
Auteur

merci Graf c'est reglé. thks