Script Paypal pour Vituemart 1.1.2

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Script Paypal pour Vituemart 1.1.2

    Bonjour à tous, je suis nouveau sur le forum !
    je vous met le script Paypal pour Vituemart 1.1.2 qui en passant j'ai frenchisé un peu, il manque un poil de taf dessus pour que cela soit correct!

    Donc j'espère que cela pourra bien aidé les membres qui on le réglement par Paypal !
    J'ai repris les bouts de codes que j'ai pu voir sur le forum, j'en ai corrigé comme la TVA qui se rajoute, retour sur la commande et ajouté un poil
    j'ai mis aussi un début d'explication sur les variables obscures

    le voici :

    Code:
    <?php
    #############################################################################
    #############################################################################
    ####                                                                     ####
    ####    Configuration de la méthode de paiement PAYPAL pour Virtuemart   ####
    ####    cf: lister les méthodes de paiements > paypal > configuration    ####
    ####                                                                     ####
    ####                           (collez tel quel)                         ####
    ####                 (et changer les valeurs éventuelles)                ####
    ####                                                                     ####
    ####            Fontionne sous Joomla 1.5.5 + VirtueMart 1.1.2           ####
    ####            modification faite par JVBien le 09/08/2008              ####
    ####            Mon site en prod : www.brd-factory.com/shop/             ####
    #############################################################################
    #############################################################################
    
    //l'adresse de la page de paiement paypal:
    $url = "https://www.paypal.com/fr/cgi-bin/webscr";
    //les taxes:
    $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax");
    //la réduc globale:
    $discount_total = $db->f("coupon_discount") + $db->f("order_discount");
    
    
    //fonction pour enlever les accents des variables étendues, et éviter ainsi le message d'erreur: 
    //"Vous avez saisi des caractères non pris en charge pour ce champ. Les types de caractères actuellement disponibles sont les suivants : européen, chinois, coréen, japonais et thaïlandais. Veuillez recommencer."
    function removeaccents($string){ 
      $string = strtr($string,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn"); 
      return $string; 
    } 
    
    /*--------------------------------------------------------------------------+
    + DEFINITION DES VARIABLES PAYPAL                                           +
    +--------------------------------------------------------------------------*/
    $post_variables = Array(
    
    
    /*-------------------------------------------------------+
    + CONFIGURATION simple/étendue                           +
    +-------------------------------------------------------*/
    
    /*
    ** Faîtes votre choix entre configuration simple/etendue
    ** (commentez/décommentez au besoin):
    */
    
        //configuration simple:
        ### "cmd" => "_xclick",
        
        //configuration étendue:
        "cmd" => "_ext-enter",
        "redirect_cmd" => "_xclick",
        "upload" => "1",
    
    /*-------------------------------------------------------+
    + VARIABLES OBLIGATOIRES                                 +
    +-------------------------------------------------------*/
    
      //l'adresse email du compte paypal associé:
      "business" => PAYPAL_EMAIL,
      
      //le nom du panier: "ordre d'achat n°X"
      "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"),
      
      //Définit la devise dans laquelle les variables monétaires sont indiquées(USD, EUR...):
      "currency_code" => $_SESSION['vendor_currency'],
    
      //prix total de tous les objets du panier:
      "amount" => round( $db->f("order_subtotal")-$discount_total, 2),
    
    
    
    
    /*------------------------------------+
    + SIMPLE                              +
    +------------------------------------*/
      //Langue de l'acheteur
      "lc" => "FR",
    
      //Bouton continuer de la page paiement terminé
      "cbt" => "Revenir à la boutique",
    
      //Frais de livraison pour chaque objet:
      "shipping" => sprintf("%.2f", $db->f("order_shipping")),
    
      // Taxe de la transaction
      "tax" => $tax_total,
    
      //Variable de transit facultative. Peut être utilisée pour le suivi des numéros de paiement:
      "invoice" => $db->f("order_number"),
      
      //L'URL Internet est l'image de 150 X50 pixels que vous souhaitez utiliser comme logo:
      "image_url" => $vendor_image_url,
      
      //URL Internet vers laquelle votre utilisateur sera dirigé une fois le paiement effectué:
      "return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"),
      
      //URL Internet vers laquelle seront dirigées les publications de formulaire NIP:
      "notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php",
      
      //URL Internet vers laquelle votre utilisateur sera dirigé une fois le paiement annulé:
      "cancel_return" => SECUREURL ."index.php?page=account.order_details&order_id=,". $db->f("order_id")."&option=com_virtuemart&Itemid=",
      ### "cancel_return" => SECUREURL ."index.php?mosmsg=Transaction interrompue!",
      
      //Si cette valeur est "1", votre utilisateur ne sera pas invité à entrer une adresse de livraison:
      "no_shipping" => "1",
    
      //Si cette valeur est égale à "1", votre utilisateur ne sera pas invité à inclure une remarque:
      "no_note" => "1",
    
     
    
    /*------------------------------------+
    + ETENDUE                             +
    +------------------------------------*/
    
    /*
    ** La définitions des variables étendues permettent à l'acheteur
    ** de ne pas avoir à renseigner de nouveau ses coordonnées
    ** pour le paiement par CB (pas de compte paypal)
    */
    
      //Adresse email de l'acheteur:
      "email" => $dbbt->f("user_email"),
      
      //Prénom de l'acheteur:
      "first_name" => removeaccents($dbbt->f("first_name")),
      
      //Nom de l'acheteur:
      "last_name" => removeaccents($dbbt->f("last_name")),
      
      //Première ligne de l'adresse de l'acheteur:
      "address1" => removeaccents($dbbt->f("address_1")),
      
      //Deuxième ligne de l'adresse de l'acheteur:
      "address2" => removeaccents($dbbt->f("address_2")),
      
      //Ville de l'acheteur:
      "city" => removeaccents($dbbt->f("city")),
      
      //(pour les ricains)Etat de l'acheteur:
      "state" => removeaccents($dbbt->f("state")),
      
      //Code postal de l'acheteur:
      "zip" => $dbbt->f("zip"),
    
      //Pays de l'acheteur:
      "country" => "FR",
      
      //Numéro de téléphone:
      "night_phone_b" => $dbbt->f("phone_1"),
      
      
    /*-------------------------------------------------------+
    + VARIABLES OBSCURES                                     +
    +-------------------------------------------------------*/
    
    /*
    ** Les variables obscures sont, comme leur nom l'indique, des variables
    ** qui n'apparaissent pas dans la doc paypal et qui se trouvaient néanmoins
    ** dans la configuration d'origine de la méthode de paiement paypal de vm.
    ** 
    ** Suite à plusieurs lectures sur : https://www.paypal-france.fr/webscr/fr_FR/html/Espace-Integration-PayPal/ic_home.html
    ** Voici les Explications ou début de réponse pour (cela sert aussi peut etre pour les test IPN):
    **
    **  "receiver_email"
    **  envoi d'email sur transaction paypal (pas sur!?) :
    **  Adresse email par défaut du destinataire du paiement (c'est-à-dire du vendeur). Si le paiement est à une adresse email autre que l'adresse principale sur votre compte PayPal, la valeur receiver_email est toujours votre adresse principale.
    **  Remarque : la valeur de cette variable est convertie en minuscules.
    **
    **  "order_id"
    **  envoi le numero de facture (pas sur!?)
    **
    **  "undefiner_quantity" 	
    **  permet aux acheteurs de préciser la quantité sur paypal.
    **  1 = - facultatif pour les boutons Acheter
    **  0 = - Non autorisé pour Ajouter des articles au panier boutons
    **
    **  "test_ipn"
    **  pour le débuggage en cas de problème et pour le définir !?
    **  Dans l'environnement de test, la Notification instantanée de paiement inclut la variable supplémentaire test_ipn, dotée de la valeur 1 (un). Le but de test_ipn est de permettre aux programmes de test de différencier les IPN de l'environnement réel de celles des tests.
    **
    **  "pal"
    **  clé de criptage ou de transaction!?
    */
    
      "receiver_email" => PAYPAL_EMAIL,
      "order_id" => $db->f("order_id"),
      "undefined_quantity" => "0",
      "test_ipn" => PAYPAL_DEBUG,
      "pal" => "NRUBJXESJTY24" //attention pas de virgule pour le dernier!!!
     
    );
    
    /*--------------------------------------------------------------------------+
    + CONSTRUCTION DU FORMULAIRE                                                +
    +--------------------------------------------------------------------------*/
    
    if( $page == "checkout.thankyou" ) {
      $query_string = "?";
      foreach( $post_variables as $name => $value ) {
        $query_string .= $name. "=" . urlencode($value) ."&";
      }
      mosRedirect( $url . $query_string );
    }
    /*
    ** Bouton Paypal affiché si et seulement en attente paiement Paypal */
     
    elseif ( $db->f("order_status") == "P" ) {
        echo '<form action="'.$url.'" method="post" target="_blank">';
        echo '<input type="image" name="submit" src="./components/com_virtuemart/shop_image/paypal.png" border="0" alt="Cliquez ici pour payer votre commande avec PayPal - un moyen de paiement rapide, sûr, et sécurisé!">';
    
        foreach( $post_variables as $name => $value ) {
          echo '<input type="hidden" name="'.$name.'" value="'.$value.'" />';
        }
        echo '</form>';
    }
    ?>
    maintenant il faudrait des testeurs, perso moi je suis passé en direct sans passé par la case testeur paypal ou il faut mettre : https://www.sandbox.paypal.com/cgi-bin/webscr à la ligne 18

    et j'ai mis cette image trouvé sur le forum :

    a mettre dans ./components/com_virtuemart/shop_image/paypal.png
    Voilou @+
    Dernière édition par JVBien à 09/08/2008, 15h25
    Joomla 1.5.5+Vitumart 1.1.2

  • #2
    Text en réel CB

    J'ai fait 3 test en réel avec une CB !
    Donc voici l'expérience que j'ai réalisé :

    1 test (le mec tranquille!) :

    paiement OK tous se passe bien, on arrive direct sur la page pré rempli pour les CB, tous se déroule bien et avant de revenir sur la boutique j'attend 1 à 2 minutes* ( je reviendrai sur se sujet plus tard !)en attendant les mails comme quoi le paiement a bien été effectué !

    *Une fois reçu j'ai bu un coup de coke, parlé au téléphone 1minute et j'ai cliqué sur le retour boutique !
    Miracle cela reviens sur ma commande qui est confirmé

    Je vérifie dans admin sur mes commande et la aussi c'est confirmé, déjà le plus gros est fait !

    2ème Test (le mec speedé!) :
    le paiement est toujours OK, on arrive toujours sur la page pré rempli CB, j'effectue le tous en version le gars qui à pas le temps d'attendre, même pas les mails !
    Je fais un retour boutique direct et la petite déception quand je vois ma commande elle est toujours en attente, même après avoir reçu les mails qui dise que le paiement est OK !
    après 2min Je vais voir dans l'admin est la aussi elle est toujours en attente !
    Mais cela ne pose pas de soucie car vous la passé en confirmé et tout est ok pour le client et dans l'admin !
    Si vous tombé sur un client qui est spyko/speedé dite lui ceci :

    Ta trop speedé ça merdé car paypal c'est un peu la tortue du 21eme siècle faut lui laisser le temps d'envoyer ta Tune sur mon compte ! lol

    3eme Test
    Je m'explique car en faisant une troisième expérience en mode Mec Tranquille et bien Paypal à le temps de traiter les infos et ensuite de les renvoyer sur la Shop et la tout est Ok comme sur le 1er test

    Bref c'est pas du TacoTac faut pas brusqué paypal !

    Je n'ai pas fait de test avec un compte Paypal car tous mes potes sont partie en vacance (sauf moi!)

    Donc si il y a des volontaires pour tester le script et qui ont des amis pas en vacance sa serait cool pour validé à 100% le script ! bien que je pense que tous soit OK

    Pour la TVA tous a l'air ok, j'ai juste remarqué qu'il arrondissait au centime supérieur c'est a dire que pour un total de 16.125€ttc sur le bon de commande chez paypal ça donnera 16.13€ttc !
    A surveiller quand même pour les grosses sommes, on ne sais jamais !

    Faites par de vos expériences, car tous seul cela ne fera pas avancer le Shmilblick !

    @+
    Dernière édition par JVBien à 09/08/2008, 20h49
    Joomla 1.5.5+Vitumart 1.1.2

    Commentaire


    • #3
      Problèmes avec les accents

      Bonjour, et merci JVBien.
      Mon script paypal pour VM 1.1.2 marche correctement à part pour les accents.

      J'ai donc essayer ta proposition :
      création d'une fonction, et application de cette fonction sur les variables en question.

      Mais cela ne fonctionne pas.

      As-tu toi même testé cet aspect de ton script ?

      Commentaire


      • #4
        Page d'accueil Paypal

        Salut,

        Déjà merci pour ce script. Il est bien pratique et à l'air de bien fonctionner de mon côté.

        J'ai remarqué une petite erreur qui empêche l'affichage de "numéro de commande" sur la page paypal:

        Remplacer
        //le nom du panier: "ordre d'achat n°X"
        "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"),

        Par
        //le nom du panier: "ordre d'achat n°X"
        "item_name" => $VM_LANG->_PHPSHOP_ORDER_PRINT_PO_NUMBER.": ". $db->f("order_id"),

        Par contre, j'ai deux questions:
        1)
        paiement OK tous se passe bien, on arrive direct sur la page pré rempli pour les CB
        Comment fais-tu pour arriver toujours sur cette page?
        Très souvent, j'arrive sur une page d'accueil Paypal où le paiement par carte bleue est difficile à voir cf CapturePaypal1 en PJ. Et j'aimerais avoir directement CapturePaypal2 qui semble correspondre à ce que tu obtiens.

        2)
        Comment faire pour que ton script soit multilingue (page paypal en français lorsque le client visite le site en français, page paypal en anglais lorsque le client visite le site en anglais)

        A plus,
        Nico
        Fichiers joints
        Site: Bijoux et Objet Touareg - www.artetiq.com
        Configuration: Joomla 1.0.13, Virtuemart 1.0.13a, Joomfish 1.8.0
        Site: Conseil financier à Hong-Kong et Shenzhen - www.falinwa.com
        Configuration: Joomla 1.5, Joom!Fish V2.0.3

        Commentaire


        • #5
          Cookies Paypal et page d'accueil Paypal

          Pour ma première question - si ca intéresse quelqu'un-, j'ai la réponse d'un administrateur du blog paypal. Ca dépend des cookies et ca ne peut pas être paramétré:

          Cette page de paiement s'affichera differement en fonction des cookies de votre PC.Si vous vous etes connecté a un compte Paypal depuis votre PC, un cookie avec les informations de connection va se creer et Paypal vous amenera directement sur une page mettant en avant le paiement par Paypal (avec un lien carte de credit en bas) lors de la validation d'un achat.Par contre, si vous n'avez pas de cookie Paypal (faites le test en supprimant vos cookies), la page qui s'affichera sera directement le formulaire pour les cartes de credit (avec un lien pour ouvrir un compte Paypal). Malheureusement, il n'est pas possible de definr la page qui s'affichera par defaut et cela dependra donc de chaque utilisateurs.
          Nico
          Site: Bijoux et Objet Touareg - www.artetiq.com
          Configuration: Joomla 1.0.13, Virtuemart 1.0.13a, Joomfish 1.8.0
          Site: Conseil financier à Hong-Kong et Shenzhen - www.falinwa.com
          Configuration: Joomla 1.5, Joom!Fish V2.0.3

          Commentaire


          • #6
            Merci ton script est très intéressant et me sera sûrement utile.

            Commentaire


            • #7
              moi il me met ce message d'erreur a la fin de la commande:

              Parse error: syntax error, unexpected '@', expecting ')' in /home/roos/www/components/com_virtuemart/themes/default/templates/pages/checkout.thankyou.tpl.php(61) : eval()'d code on line 57


              au lieu de me redirigé vers paypal

              Commentaire


              • #8
                Merci ton script est très intéressant et me sera sûrement utile.

                Commentaire


                • #9
                  Correctif fonction removeaccents($string) paiement Paypal

                  La fonction removeaccents($string) ne fonctionne pas non plus chez-moi.
                  Je me suis penché sur ce problème et j'ai trouvé un moyen de corriger ce problème.

                  Voici la fonction revue et corrigée:

                  Code PHP:
                  function removeaccents($string$charset='utf-8')
                  {
                      
                  $string htmlentities($stringENT_NOQUOTES$charset);
                      
                      
                  $string preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#''\1'$string);
                      
                  $string preg_replace('#\&([A-za-z]{2})(?:lig)\;#''\1'$string); // pour les ligatures e.g. '&oelig;'
                      
                  $string preg_replace('#\&[^;]+\;#'''$string); // supprime les autres caractères
                      
                      
                  return $string;

                  Ca marche avec Joomla 1.5.17 et VirtueMart 1.1.4 (ça n'a pas d'importance, mais bon...)
                  Dernière édition par lacigale à 17/05/2010, 20h22 Raison: Rajout d'un titre + versions
                  Une cigale dans la fourmilière...

                  Commentaire


                  • #10
                    Un script finalisé?

                    Bonjour,

                    En premier, merci pour la recherche que vous faites pour nous rendre, a ceux qui ne code pas, la vie plus facile.

                    Est-il possible d'avoir un script finalisé pour les newbies comme moi afin d'insérer directement le code dans le champ information du module de Paypal?

                    J'ai également le soucis de la redirection qui ne vas pas sur Paypal avec l'erreur "
                    Fatal error: Call to undefined function mosRedirect() in "

                    En vous remerciant d'avance.

                    Commentaire


                    • #11
                      Bonjour,

                      le topic des astuces
                      http://forum.joomla.fr/showthread.php?t=89922

                      post #100

                      scipt paypal a jour en terme d'accent

                      je pense qu'il devrait vous satisfaire

                      bonne continuation
                      sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
                      http://virtuemart.fr

                      Commentaire


                      • #12
                        Fonction pour nettoyer les variables Paiement Paypal

                        En effet PATSXM971, J'ai revu ma copie depuis et j'utilise la variable "charset" maintenant.

                        Par contre, je travaille actuellement sur une fonction qui permet de retirer tous les caractères que l'on ne souhaite pas voir dans le formulaire (ex: #,@,!,+,=,...).
                        Joomla et VirtueMart ne contrôlent pas assez les champs et enregistrent tout ce qu'on leur donne à manger.

                        Je l'ai intégrée à Paypal pour que la facturation soit plus propre, mais au final c'est dans le système même que je souhaite l'intégrer.

                        Pour le moment, ça ne fonctionne pas avec avec le code postale, ni avec le numéro de téléphone. Les chiffres en somme.

                        La fonction:
                        Code PHP:

                        /*____________________________________________________________________+
                        + Fonction pour nettoyer les variables utilisateur passées à Paypal:  +
                        +____________________________________________________________________*/

                        function cleanstring($string)
                        {
                            
                        // On enlève toutes les balises HTML et PHP
                            
                        $string strip_tags($string);
                            
                            
                        // Les caractères indésirables:
                            
                        $supprimer = array('@''#''"''§''!''°''_''^''$''*''€''`''£''%''=''+''/'':',
                            
                        '.'';''?''Ø''ø''<''>','\\'); // A compléter...
                            
                            // On les supprimes !
                            
                        foreach($supprimer as $key=>$value)
                            {
                            
                        $supprimer[$value] = '';
                            
                        $string strtr($string$supprimer);
                            }
                            
                            
                        // Si vous voulez remplacer certains caractères; décommentez ci-dessous
                            // Modifiez, supprimez ou ajoutez ce qu'il vous plait.
                        /*
                            $remplacer = array(
                                'Š'=>'S', 'š'=>'s', 'Đ'=>'Dj', 'đ'=>'dj', 'Ž'=>'Z', 'ž'=>'z', 'Č'=>'C', 'č'=>'c', 'Ć'=>'C', 'ć'=>'c',
                                'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E',
                                'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O',
                                'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss',
                                'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e',
                                'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o',
                                'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ü'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b',
                                'ÿ'=>'y', 'Ŕ'=>'R', 'ŕ'=>'r'
                            );
                            $string = strtr($string, $remplacer);
                        */

                            
                        return $string;

                        Cette fonction permet:
                        - de supprimer les balises HTML et PHP (au cas ou, par sécurité),
                        - de supprimer les caractères indésirables,
                        - de remplacer des caractères spéciaux (ex: 'Đ'=>'Dj','ß'=>'Ss'),
                        - ou des expressions comme "boulevard" à la place de "bvd", "St" pour "Saint"... Mais ceci nécessite encore un peu de travail.
                        Avis aux programmeurs intéressés...
                        Dernière édition par lacigale à 22/05/2010, 00h11
                        Une cigale dans la fourmilière...

                        Commentaire


                        • #13
                          Envoyé par asiagreg Voir le message
                          Bonjour,

                          En premier, merci pour la recherche que vous faites pour nous rendre, a ceux qui ne code pas, la vie plus facile.

                          En vous remerciant d'avance.
                          Bonjour asiagreg,

                          D'abord, on ne cherche pas pour VOUS, mais pour nous-même avant toute chose. Mais parce que nous sommes attachés à Joomla et à sa licence libre, nous partageons bien volontiers nos trouvailles pour faire avancer le shmilblick! C'est l'affaire de tous; je donne un peu, tu donnes un peu, il donne un peu... et le monde est meilleur!
                          Joomla c'est un esprit avant tout!

                          Envoyé par asiagreg Voir le message
                          Bonjour,

                          J'ai également le soucis de la redirection qui ne vas pas sur Paypal avec l'erreur "
                          Fatal error: Call to undefined function mosRedirect() in "

                          En vous remerciant d'avance.
                          Il faut utiliser vmRedirect() !

                          Allez, Je te colle mon script ci-dessous pour te simplifier la vie.

                          J'ai intégré toutes les idées que j'ai trouvé sur le forum, ainsi que ma fonction cleanstring().

                          Code PHP:
                          <?php
                          #############################################################################
                          #############################################################################
                          ####                                                                     ####
                          ####    Configuration de la méthode de paiement PAYPAL pour Virtuemart   ####
                          ####                                                                     ####
                          #############################################################################
                          #############################################################################

                          //Requête pour obtenir la langue de l'utilisateur...
                          $db1 = new ps_DB();
                          $q "SELECT country_2_code FROM #__vm_country WHERE country_3_code='".$user->country."' ORDER BY country_2_code ASC";
                          $db1->query($q);

                          //l'adresse de la page de paiement paypal:
                          // En mode Test:
                              //$url = "https://www.sandbox.paypal.com/cgi-bin/webscr";
                          // En mode Normal:
                          $url "https://www.paypal.com/fr/cgi-bin/webscr";

                          //les taxes:
                          $tax_total $db->f("order_tax") + $db->f("order_shipping_tax");

                          //la réduc globale:
                          $discount_total $db->f("coupon_discount") + $db->f("order_discount");

                          //sous-total ttc : pour chèque boutique appliqué après le calcul des taxes
                          $sous_total_ttc $db->f("order_total") - $db->f("order_shipping") - $tax_total;

                          /*____________________________________________________________________+
                          + Fonction Pour nettoyer les variables utilisateur passées à Paypal:  +
                          +____________________________________________________________________*/

                          function cleanstring($string)
                          {
                              
                          $string strip_tags($string);

                              
                          $supprimer = array('@''#''"''§''!''°''_''^''$''*''€''`''£''%''=''+''/'':''.'';''?''Ø''ø''<''>','\\'); // A compléter...

                              
                          foreach($supprimer as $key=>$value)
                              {
                              
                          $supprimer[$value] = '';
                              
                          $string strtr($string$supprimer);
                              }

                              return 
                          $string;
                          }

                          /*--------------------------------------------------------------------------+
                          + DEFINITION DES VARIABLES PAYPAL                                           +
                          +--------------------------------------------------------------------------*/

                          $post_variables = Array(

                          /*-------------------------------------------------------+
                          + CONFIGURATION simple/étendue                           +
                          +-------------------------------------------------------*/

                              //configuration simple:
                              ###"cmd" => "_xclick", 
                              
                              //configuration étendue:
                              
                          "cmd" => "_ext-enter",
                              
                          "redirect_cmd" => "_xclick",
                              
                              
                          // Mise à jour du statu de la commande
                              
                          "upload" => "1",
                              
                              
                          // Définition de l'encodage:
                              
                          "charset" => "utf-8",
                            
                          /*-------------------------------------------------------+
                          + VARIABLES OBLIGATOIRES                                 +
                          +-------------------------------------------------------*/

                              //l'adresse email du compte paypal associé:
                                
                          "business" => PAYPAL_EMAIL,
                            
                                
                          // Adresse de réception des notifications
                                
                          "receiver_email" => PAYPAL_EMAIL,
                            
                                
                          //le nom du panier: "ordre d'achat n°X"
                                
                          "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": "$db->f("order_id"),
                            
                                
                          //Définit la devise dans laquelle les variables monétaires sont indiquées(USD, EUR...):
                                
                          "currency_code" => $_SESSION['vendor_currency'],
                            
                                
                          //prix total de tous les objets du panier:
                                // décommenter la ligne suivante:
                                // - Si chèque boutique appliqué avant calcul des taxes
                                //"amount" => round( $db->f("order_subtotal")-$discount_total, 2),
                                // - Si chèque boutique appliqué après calcul des taxes
                                
                          "amount" => round$sous_total_ttc2),



                          /*------------------------------------+
                          + SIMPLE                              +
                          +------------------------------------*/

                              // Taxe de la transaction
                              
                          "tax" => $tax_total,
                              
                              
                          //Langue de l'acheteur
                              
                          "lc" => $db1->f('country_2_code'),

                              
                          //Bouton continuer de la page paiement terminé // Facultatif ( Utile ?)
                              
                          "cbt" => "Revenir à la boutique",
                            
                              
                          //Frais de livraison pour chaque objet:
                              
                          "shipping" => sprintf("%.2f"$db->f("order_shipping")),
                              
                              
                          //Variable de transit facultative. Peut être utilisée pour le suivi des numéros de paiement:
                              
                          "invoice" => $db->f("order_number"),
                              
                               
                          //L'URL Internet est l'image de 150 X50 pixels que vous souhaitez utiliser comme logo:
                               
                          "cpp_header_image" => $vendor_image_url,
                               
                          // Ou
                               //"image_url" => $vendor_image_url,
                               
                               //URL Internet vers laquelle votre utilisateur sera dirigé une fois le paiement effectué:
                               
                          "return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"),
                               
                               
                          //URL Internet vers laquelle seront dirigées les publications de formulaire NIP:
                               
                          "notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php",
                               
                               
                          //URL Internet vers laquelle votre utilisateur sera dirigé une fois le paiement annulé:
                               
                          "cancel_return" => SECUREURL ."index.php?option=com_virtuemart&page=account.order_details&order_id=".$db->f("order_id"),
                               
                               
                          //Si cette valeur est "1", votre utilisateur ne sera pas invité à entrer une adresse de livraison:
                               
                          "no_shipping" => "1",
                               
                               
                          //Si cette valeur est égale à "1", votre utilisateur ne sera pas invité à inclure une remarque:
                               
                          "no_note" => "1",

                          /*------------------------------------+
                          + ETENDUE                             +
                          +------------------------------------*/

                              // Ne pas tenir compte de l'adresse
                              
                          "address_override" => "1",
                              
                              
                          //Adresse email de l'acheteur:
                              
                          "email" => $dbbt->f('user_email'),
                              
                              
                          //Prénom de l'acheteur:
                              
                          "first_name" => cleanstring($dbbt->f("first_name")),
                              
                              
                          //Nom de l'acheteur:
                              
                          "last_name" => cleanstring($dbbt->f('last_name')),
                              
                              
                          //Numéro de téléphone:
                              
                          "night_phone_b" => $dbbt->f('phone_1'),
                              
                              
                          //Première ligne de l'adresse de l'acheteur:
                              
                          "address1" => cleanstring($dbbt->f('address_1')),
                              
                              
                          //Deuxième ligne de l'adresse de l'acheteur:
                              
                          "address2" => cleanstring($dbbt->f('address_2')),
                              
                              
                          //(pour les ricains)Etat/province/région de l'acheteur:
                              
                          "state" => $dbbt->f('state'),
                              
                              
                          //Code postal de l'acheteur:
                              
                          "zip" => $dbbt->f('zip'),
                              
                              
                          //Ville de l'acheteur:
                              
                          "city" => cleanstring($dbbt->f('city')),
                              
                              
                          // Pays de l'acheteur
                              
                          "country" => $db1->f('country_2_code'),
                              
                          /*-------------------------------------------------------+
                          + VARIABLES OBSCURES                                     +
                          +-------------------------------------------------------*/

                              
                          "order_id" => $db->f("order_id"),
                              
                          "undefined_quantity" => "0",
                              
                          "test_ipn" => PAYPAL_DEBUG,
                              
                          "pal" => "NRUBJXESJTY24" //attention pas de virgule pour le dernier!!!
                          );

                          /*--------------------------------------------------------------------------+
                          + CONSTRUCTION DU FORMULAIRE                                                +
                          +--------------------------------------------------------------------------*/

                          if( $page == "checkout.thankyou" ) {
                          $query_string "?";
                          foreach( 
                          $post_variables as $name => $value ) {
                          $query_string .= $name"=" urlencode($value) ."&";
                          }
                          vmRedirect$url $query_string );
                          }

                          /*--------------------------------------------------------------------------+
                          + Bouton Paypal affiché si et seulement si attente paiement Paypal          +
                          +--------------------------------------------------------------------------*/

                          elseif ( $db->f("order_status") == "P" ) {
                              echo 
                          '<form action="'.$url.'" method="post" target="_self">';
                              echo 
                          '<input type="image" name="submit" src="./components/com_virtuemart/shop_image/Paypal.png" border="0" alt="Cliquez ici pour payer votre commande avec PayPal - un moyen de paiement rapide, sûr, et sécurisé!">';

                              foreach( 
                          $post_variables as $name => $value ) {
                                echo 
                          '<input type="hidden" name="'.$name.'" value="'.htmlspecialchars($value).'" />';
                              }

                          echo 
                          '</form>';
                          }
                          ?>
                          Il te faut aussi l'image ci-dessous que tu met dans:

                          /components/com_virtuemart/shop_image/

                          [IMG]
                          http://forum.joomla.fr/attachment.ph...9&d=1189898013
                          [/IMG]
                          Dernière édition par lacigale à 22/05/2010, 00h08
                          Une cigale dans la fourmilière...

                          Commentaire


                          • #14
                            Trop fort!! ça marche ****l..
                            Merci lacigale!!

                            Juste une petite précision quand vous téléchargez l'image, il faut la renommer avant de l'uploader dans le dossier shop_image

                            de "attachment.png" en "Paypal.png" avec le P majuscule
                            made by Cedrix ==>www.roultaboul.com---www.graindebeaute30.com---www.jean-noel-fromages.com---laplumemagique.net

                            Commentaire


                            • #15
                              Bien vu! la cigale

                              bonne continuation
                              sommaire thématique des astuces du forum e-commerce ici http://www.webtimarket.com/fr/telechargements
                              http://virtuemart.fr

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X