Plugin SPIPAL

Pour intégrer un système de paiement immédiat via PayPal à certains de vos articles .

Ce plugin est une mise à niveau pour la version SPIP 2.1.8 du Plugin GoPayPal qui était resté en SPIP 1.9.2 depuis 3 ans. Il
change de nom pour ne pas faire trop de pub à une entreprise bancaire critiquable.
La présente version reprend les tables SQL de la version initiale, toutefois le champ « id_devise » a été renommé « devise » pour respecter la règle implicite qu’un champ de préfixe « id_ » est un entier.

La balise principale de la version initiale, FORMULAIRE_ACHETER, a été renommée FORMULAIRE_PAYER puisqu’il ne s’agit pas forcément d’acheter, simplement de payer (une cotisation à une association par exemple). En outre, elle accepte (et souvent nécessite) un argument, et même un deuxième pour faciliter son interfaçage avec d’autres plugins.

Le point essentiel du plugin, l’interface avec Paypal, est conservé et légèrement étendu, la configuration ayant à présent des valeurs par défaut suffisant à assurer ce service. La nouvelle version n’utilise plus le plugin CFG, mais les balises #CONFIGURER_META et #META, reprises du plugin Association (les fichiers sont identiques et de même PATH relatif, le find_in_path ne chargera donc que l’un d’entre eux si l’on active les deux plugins en même temps).

Installation

Récupérer spipal sur le dépôt SPIP-Zone, ou bien utiliser le fichier zip joint. Le plugin s’installe comme n’importe quel plugin. Ensuite,
cliquer sur l’icône des outils à côté de son nom dans la page d’administration des plugins pour modifier ses paramètres par défaut.

Principes

Les articles sont sélectivement étendus via la page de modification des articles. Un article peut être étendu en lui ajoutant un bouton don ou un bouton paiement. Le plugin permet d’étendre tous les articles, ou seulement ceux appartenant à des rubriques indiquées à la configuration.

Chaque versement PayPal effectué provoque l’émission par PayPal d’un message de notification qui est traité par le plugin, par une fonction précisée par le deuxième argument de la balise FORMULAIRE_PAYER. Par défaut, elle gère une table SQL mémorisant les versements. Cette table est accessible dans l’interface privée via le menu « Édition ».

Configuration

La configuration est automatique si l’adresse du Webmaster du site est celle du compte PayPal. Sinon, il faut donner explicitement cette adresse. Les autres valeurs par défaut sont normalement les bonnes.
On peut toutefois utiliser https://www.sandbox.paypal.com/fr/cgi-bin/webscr si l’on souhaite faire des tests.

Les autres paramètres sont :

rubriques Liste des numéros des rubriques dont les articles décrivent quelque chose à payer. Laisser vide si cela doit s’appliquer à tous les articles du site
garder_notification Si cette option est activée, les requêtes de notification PayPal sont sérialisées et enregistrées dans la base.
donner Vous permet de rendre vos articles aptes à provoquer des élans de générosités de vos lecteurs. À condition de paramétrer l’article.
vendre Inactif, et ne sera probablement jamais actif

Utilisation

Le plugin est fourni avec une nouvelle balise #FORMULAIRE_PAYER,
à mettre dans vos squelettes.

Pour que tout cela ait des effets visibles il faut avoir modifié l’article que l’on souhaite utiliser pour s’attirer la bienveillance pécuniaire de ses lecteurs. Pour réaliser cela le plugin utilise le pipeline affiche_milieu qui provoque l’affichage, dans la page de modification de l’article, d’un nouveau formulaire permettant de solliciter un paiement lié à l’article.

Cet affichage s’applique aux seuls articles des rubriques indiquées dans la configuration, ou à tous les articles si cette donnée de configuration est vide.

La balise #FORMULAIRE_PAYER

Elle provoque l’affichage d’un bouton accompagné d’une liste déroulante de sélection d’une devise. La devise par défaut est EUR (euro). C’est actuellement la seule devise supportée. (PayPal gère toutes les autres devises et fait les conversions lui même)

Si un montant a été spécifié avec le formulaire mentionné ci-dessus, alors la balise provoque aussi l’affichage d’un <input type="text" /> dont la valeur par défaut est ce montant. Il est modifiable du côté public, mais cela n’affectera pas la valeur en base, uniquement la valeur transmise à PayPal.

Si aucun montant n’a été saisi, il devra l’être par l’utilisateur sur PayPal.

Seule la mise en vente utilise l’information de TVA, qui est un pourcentage. Dans le cas d’un don la balise #FORMULAIRE_PAYER force cette valeur à 0.

La saisie d’un nom commercial pour l’article provoquera, sur PayPal, l’affichage de « nom commercial ».

Si aucune référence n’est saisie pour l’article celle ci sera automatiquement positionnée à « id_article ». Cette référence permet de suivre les opérations sur le compte PayPal.

La balise doit avoir comme argument un numéro indiquant ce qui est payé. Le plus souvent ce numéro sera celui de l’article spécifié par une boucle ARTICLES, comme dans :

#FORMULAIRE_PAYER{#ID_ARTICLE}

Par souci de compatibilité avec l’ancienne version, cet argument peut parfois être omis mais ça ne marche que dans certains cas. Tout autre moyen d’indiquer un numéro comme argument est possible.

Le deuxième argument indique la fonction traitant la notification par Paypal :

#FORMULAIRE_PAYER{#ID_ARTICLE, association}

aura pour effet d’appliquer la fonction inc_association_spipal au tableau de couples variable-valeur envoyé par Paypal à la notification. Par défaut cette fonction se nomme inc_valider_spipal et est fournie en standard.

Discussion

31 discussions

  • Bonjour,
    Je ne comprend pas bien , je suis entrain de tester le plugin sur l’environnement de test paypal : www.sandbox.paypal.com
    le paiement est accepté par contre la table « spip_spipal_versements » reste toujours vide.
    Les versements sont-ils alimentés uniquement dans l’environnement de production paypal ?
    Dans l’attente d’une réponse
    Merci

    Répondre à ce message

  • SLT
    je suis en train de mettre en place une boutique pour vendre en ligne. SPIPAL est le plugin choisi.
    Mais j’ai des problèmes !
    1- Quand je clique sur PAYPAL PAIEMENT, aucune valeur n’est trnsmise à paypal, ie la partie RECAPITULATION DE LA COMMANDE m’affiche des valeurs nulles nul nul !!!

    2- Je voudrais avoir la possibilité que l’acheteur modifier la quantité mais pas le prix unitaire

    NB. Souhez un peu explicite dans vos aides car je ne m’y connais pas trop en programmmation. Mon problème doit venir de la config du plugin
    MERCI

    Répondre à ce message

  • une version pour spip 3 est-elle prévue ?

    merci d’avance.

    Répondre à ce message

  • 3
    spipheure

    Bonjour
    Je viens d’installer ce plugin, qui fonctionne bien
    le seul soucis est que la TVA n’est pas transmise à PAYPAL
    Une bonne âme aurait elle trouvée la solution ?

    • spipheure

      je me reponds à moi même et j’espere que cela profitera à la communauté

      le problème vient du fichier payer.html dans le repertoire « formulaires »

      à la ligne 17 le script est :
      <alt type="hidden" name="tax" value="#ENV{taxes}" />
      il faut le remplacer par
      <input type="hidden" name="tax" value="#ENV{taxes}" />

      la TVA passe ensuite sur Paypal
      CQFD

    • Bonjour, Votre code n’apparait pas, serait-il possible que vous le repostié SVP ?

      Merci d’avance.

    • c’est corrigé en ajoutant les balises « code » nécessaires

    Répondre à ce message

  • Bonjour,
    je ne comprend pas bien , je suis entrain de tester le plugin sur l’environnement de test paypal : www.sandbox.paypal.com
    le paiement est accepté par contre le table « spip_spipal_versements » toujours vide !!!!

    aider moi svp
    merci

    Répondre à ce message

  • bonjour

    si j’ai bien compris :

    ce plugin permet d’afficher un article après paiement auprès de Paypal
    est il possible si l’articlez est déjà payé de revenir le visualiser sur le site ?

    en fait je dois faire un site avec vente en ligne de cours
    donc si ils sont sur un article de cours, alors sipal et accès à un autre artcile avec le pdf à trelecharger
    mais il faudrait autoriser de nouveau le telechargmeent si celui çi est par exemple perdu ...

    merci

    Tounse

    Répondre à ce message

  • 1

    Bonjour,

    Quelques questions :

    1/ Où changer la mise en page (CSS) qui gère le formulaire ?
    Je souhaiterai touché à la mise en forme du côté
    de l’espace public, actuellement j’ai un champs de formulaire avec le montant à payer
    et un même champs en dessous avec la devise, plus le bouton « Paiement Paypal »
    Dans mon cas, c’est un prix fixe donc je ne souhaite pas
    la possibilité de changer le montant.

    2/ Est-ce qu’il a été prévu un formulaire pour des quantités différentes, qui multiplierai le prix par le nombre d’exemplaires indiqués ?

    3/ Dans Internet Explorer rien ne s’affiche dans le champs du prix, le champs est vide, une solution ?

    MErci

    • Bonjour,

      Je me réponds.
      Pour la 3/, tout est rentré dans l’ordre une fois que j’ai mis un autre article à la vente, par contre y a -t-il possibilité, surement mais comment, de faire qu’il ne soit pas possible de changer le prix pour le visiteur, actuelement on peut, pratique voire indispensable lorsqu’il s’agit d’un don, mais dans ce cas précisil s’agit de prix fixes.

      Bien à vous.

    Répondre à ce message

  • 2

    Bonjour,

    Comment faire si par exemple mon article est en rupture de stock et que je veux désactiver SPIPAL pour cet article (sans effacer l’article, parce qu’il sera à nouveau en vente bientôt) ?

    • repasser l’article en brouillon jusqu’à ce que le stock soit réapprovisionné ou mettre sa date de publication à la date où l’article sera de nouveau disponible :)

    • Bonjour,

      Oui, y a une astuce avec les mots clefs :
      tu créer le mot clef « acheter » que tu attribues à tous les article à
      vendre.
      Ensuite dans ton squelette tu poses cette boucle :

      BOUCLE_achat(ARTICLES)id_article titre_mot=acheter
      #FORMULAIRE_PAYER#ID_ARTICLE
      /BOUCLE_achat_dvd

      Si ton article ne possède pas le mot clef « acheter »,
      le formulaire de paiement n’apparait pas.

      J’espère t’avoir aidé.
      OneMore

      PS : on ne peut plus insérer du code dans le forum ?
      Pour pouvoir insérer ma boucle j’ai du enlever les signes < et > sans quoi
      le code n’apparaissait pas.

    Répondre à ce message

  • 2

    Salut.

    Avez-vous une astuce pour que le formulaire ne s’affiche pas quand il n’y a « rien à payer » ?

    • Pas testé, mais en désactivant l’option « dons » dans la configuration du plugin ? parce-que pour les dons il n’y a rien à payer...

      Autre aprcoche : dans le squelette en question, n’afficher le formulaire que si le prix est renseigné...

    • Bonjour,

      En modifiant le fichier spipal\balise\formulaire_payer.php :

      Dans la fonction formulaires_payer_charger, remplacer la ligne
      if (!$row) return « Rien a payer » ;
      par
      if (!$row) return ;

      Ce if correspond le cas de figure où l’article est gratuit.

      Bien cordialement,
      Bruno.

    Répondre à ce message

  • Bonjour.

    Je viens de parcourir les autres messages pour voir si la question avait été déjà posée.
    J’aimerais savoir comment bénéficier du traitement de ce plugin à partir d’un autre formulaire : je souhaite utiliser un formulaire maison, mais pouvoir payer avec PayPal avec ce plugin installé ; commet procéder ?

    Merci.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom