Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tuto Paypal, pas d'affichage prix (parametre AMT)

    1 mars 2013 à 10:10:19

    Bonjour ,

    Je pensais être rendu au bout de mes peines avec ce tuto, mais je ne comprends pas pourquoi le prix ne s'affiche pas dans la page paypal.

    Le paramètre AMT est pourtant présent .

    Ce que j'ai fait est du simple copier collé du tuto . Alors où est l'erreur ? S'il y en a une ...

    Merci de m'éclairer .

     Ci dessous le script php , suivi de la réponse paypal. 

    <!--
     
    /* Le paiement... ou pas
    Pour que le visiteur puisse régler son dû, et si la demande de paiement a été correctement transmise,
    il faut rediriger le client sur le site de PayPal afin qu'il s'identifie.
    Pour ce faire, il existe une fonction PHP permettant de rediriger le visiteur sur un autre site.
    Il s'agit de la fonction header. En fait cette fonction permet d'envoyer des entêtes HTTP au navigateur du client,
     et en lui passant l'entête "Location:" le visiteur est redirigé sur le site en question.
    On va donc utiliser cette fonction pour le diriger sur le site de PayPal en y ajoutant le jeton.
       */  -->
       
    <?php   
    include('fonction_api2.php');  // 2 fonctions: construit_url_paypal() et recup_param_paypal($resultat_paypal)
    $requete = construit_url_paypal();
          
     /*  Cette requete est l'adresse url suivante:
    https://api-3t.sandbox.paypal.com/nvp
       ?VERSION=57   &USER=vente_1360163706_biz_api1.bbox.fr   &PWD=1360163730
       &SIGNATURE=AFcWxV21C7fd0v3bYYYRCpSSRl31AeAhJxEtha2hXv9mBNHCZuaM.A3.
    */



    $requete = $requete."&METHOD=SetExpressCheckout".
                "&CANCELURL=".urlencode('http://localhost/paypal/cancel.php').    //adresse si cancel
                "&RETURNURL=".urlencode('http://localhost/paypal/return.php').    //adresse si return
                "&CURRENCYCODE=EUR".
                "&DESC=".urlencode("Magnifique oeuvre d'art (que mon fils de 3 ans a peint.)").
                "&AMT=10.00"."&LOCALECODE=FR".
                "&HDRIMG=".urlencode("http://localhost/cos6/images/rss21.png");
     
    $ch = curl_init($requete); //   $ch est une ressource var_dump( $ch);exit;
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     
    $resultat_paypal = curl_exec($ch);    
        /*  $resultat_paypal est un string de la forme:
    'TOKEN=EC%2d1LD72130KK058572P
    &TIMESTAMP=2013%2d02%2d19T16%3a08%3a01Z
    &CORRELATIONID=22c7b672627d8
    &ACK=Success
    &VERSION=57
    &BUILD=5060305'
    */
    if (!$resultat_paypal)
        {echo "<p>Erreur</p><p>".curl_error($ch)."</p>";}
    else
    {   foreach(explode('&',urldecode($resultat_paypal)  )as $para)   echo "$para<br>";
        $liste_param_paypal = recup_param_paypal($resultat_paypal); // 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']);
                    exit();
        }
        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);


    ?>

    Dans le récapitulatif de la commande on voit que le prix n'apparait pas. Si on valide le paiement c'est ok , c'est quand même curieux de payer sans savoir le prix ? !

    • Partager sur Facebook
    • Partager sur Twitter
      1 mars 2013 à 10:15:30

      Je croyais avoir joint l'image de la page paypal... la voici donc

      Autre question : que signifie la phrase "Vous aurez la possibilité d'afficher les détails de votre commande avant de payer "

      Dans l'exemple moi j'ai payé et je n'ai rien vu venir ..

      -
      Edité par xavdk29 1 mars 2013 à 10:54:48

      • Partager sur Facebook
      • Partager sur Twitter
        6 mars 2013 à 7:22:04

        Bonjour.

        Pas de réponse.

        -
        Edité par dcdaguet 6 mars 2013 à 7:23:30

        • Partager sur Facebook
        • Partager sur Twitter
          12 mars 2013 à 9:15:48

          Bon j'ai trouvé le problème.

          A cette ligne

               header("Location: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=".$liste_param_paypal['TOKEN']);

          il faut ajouter useraction=commit

          header("Location: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&useraction=commit&token=".$liste_param_paypal['TOKEN']);


          Le montant AMT et bien affiché.

          Si vous pouviez mettre a jour le tutoriel bancal

          Daniel



          • Partager sur Facebook
          • Partager sur Twitter
            20 mars 2013 à 18:43:44

            Effectivement ça marche , merci Daniel pour ta réponse, je n'avais pas consulté s'il y avait ds réponses depuis 10 jours .

            Comme quoi faut jamais désespérer !!

            • Partager sur Facebook
            • Partager sur Twitter
              16 mai 2013 à 19:33:44

              salut

              merci pour l'affichage du prix !

              le tuto est vraiment moyen, cUrl est vraiment inutile et php intègre d'origine des fonctions de création et décodage d'url

              =>

              <?php
              
              define('paypalUser','you');
              define('paypalPass','your password');
              define('paypalSignature','your signature');
              define('paypalCurrency','EUR');
              define('paypalLocale','fr');
              define('paypalApiUrl','https://api-3t.sandbox.paypal.com/nvp');
              define('paypalUrl','https://www.sandbox.paypal.com/webscr');
              
              $prix = '10.54';
              $desc = 'hello world';
              
              // an util function for generate get url
              function buildUrl($url,$get){ return $url.'?'.http_build_query($get); }
              
              // say at paypal who am i and paiement info
              $url = buildUrl(paypalApiUrl,array(
              	'user'=>paypalUser,
              	'pwd'=>paypalPass,
              	'signature'=>paypalSignature,
              	'version'=>'97.0',
              	'method'=>'SetExpressCheckout',
              	'amt'=>$prix,
              	'currencycode'=>paypalCurrency,
              	'desc'=>$desc,
              	'localecode'=>paypalLocale,
              	'returnurl'=>'your return page',
              	'cancelurl'=>'your cancel page',
              	'hdrimg'=>'your image'
              ));
              
              // request paypal api & parse response
              parse_str( file_get_contents($url), $nfo);
              
              // check response was success
              if(!isset($nfo['ACK']) || $nfo['ACK'] !== 'Success') die('paypal error');
              
              // generate client paiement url
              $url = buildUrl(paypalUrl,array(
              	'cmd'=>'_express-checkout',
              	'token'=>$nfo['TOKEN'],
              	'useraction'=>'commit'
              ));
              
              // and redirect client to the paiement page
              header('Location: '.$url);
              
              ?>



              -
              Edité par noferov 16 mai 2013 à 19:36:42

              • Partager sur Facebook
              • Partager sur Twitter
                19 octobre 2014 à 23:12:44

                Bonjour,

                Désolé de remonter ce vieux topic, mais j'aimerai avoir plus de précision sur l'option USERACTION=COMMIT.

                Merci

                • Partager sur Facebook
                • Partager sur Twitter
                  20 juillet 2015 à 23:08:05

                  merci pour le Useraction=commit....
                   merci pour le tuto....

                  chez moi la somme ne disparait pas du buyer.....

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Tuto Paypal, pas d'affichage prix (parametre AMT)

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown