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.
Discussions par date d’activité
31 discussions
Bonjour à tous
J’ai installé SPIPAL, j’ai configuré celui-ci sur une rubrique particulière,
Puis j’ai placé un article de la rubrique avec un paramètre de 60€ sans rien en tva en achat.
Puis dans le squelette d’article, dans la boucle article j’ai placé ma balise :
A priori il se passe bien quelque chose, mais je n’obtient pas le formulaire de paiement mais juste la mention :
(rien à payer)
!!!Comment obtenir l’affichage du formulaire ?!!! corectement.
De plus cela s’affiche sur tout mes articles malgré la déclaration de rubriques en configuration ???
Pour obtenir cela j’ai ajouté la balise (#FORMULAIRE_PAYERid_article) sur la boucle d’article du plugin AVELINE .
En utilisant la méthode COMPOSITION par la composition d’un modèle (produit).
Avec une copi modifier de article-contenuprincipal.html d’AVELINE dans le répertoire squellette/contenu/article-produit.html.
Et en plaçant mon article sur la composition (produit) j’obtiens un double affichage de l’article quand je l’affiche ?!!
Aussi j’aimerais savoir :
1) qu’est-ce que j’oubli pour que mon formulaire SPIPAL s’affiche correctement ?
2) Qu’est-ce que je fait de travers et comment ne plus avoir cette double publication d’article avec le plugin COMPOSITION ?
PS : en utilisant directement un bouton créer par paypal dans l’article tout s’affiche correctement mais je préférerait utiliser la méthode SPIPAL plus élégante.
QS : Peut-on écrire directement une boucle ou une balise dans un article par l’interface privé ??
Désolé je ne comprend pas toujours trés bie la logique de SPIP, merci pour votre compréhension et votre aide précieuse àà tous.
Cordialement
magatst->magat.net
Ajoutes le #ID_ARTICLE comme ceci dans ton squelette :
.
Cela marche pour moi
G
Répondre à ce message
Bonjour,
Est-il possible d’utiliser la fonction panier de Paypal avec ce Plugin ? Ce qui permettrait d’ajouter plusieurs produits.
Merci e vos lumières.
Oups, la solution est là : https://www.paypal.com/fr/cgi-bin/webscr?cmd=_pdn_xclick_to_cart_outside
Avez-vous mieux ?
Répondre à ce message
Bonjour et merci pour ce plugin.
Le sélectionneur de rubrique ne fonctionne pas chez moi. Tout fonctionne sauf ceci. Que faut-il faire pour que sélectionner les rubriques ? Merci de vos lumières.
Répondre à ce message
bonjour à tous,
je ne comprends pas bien si ce plugin permet autre chose que de « faire un don ». Permet-il en particulier, après paiement, de donner accès à l’intégralité du contenu d’un article ?
Répondre à ce message
Bonjour,
Merci pour ce plugin. Une question toute bête :
Comment faire apparaître le bouton « Paypal faire un don » au lieu de ’paypal paiements"
J’ai bien configuré le plugin : « donner »
Merci HD
Répondre à ce message
Bonjour,
Je découvre spip pour un site d’asso. Ayant besoin d’utiliser les dons avec **pal, je viens d’installer spipal.
J’ai eu le souci « Nom du plugin manquant » pour le configurer. J’ai pu constater que la correction 45046 est bien présente dans ma version de spipal. Peut-être que mon souci provient de ma version de spip (2.1.9), toujours est-il que le problème est corrigé en modifiant à nouveau la correction 45046 comme suit : (le ’/’ en trop juste après ’formulaires’, ligne 75) :
45046 :
correctif proposé pour 2.1.9 :
Si ça peut aider...
Il ne me semble pas possible que ta modification puisse avoir résolu le problème, c’est plutôt un cache qui a donné un comportement différent. Ce qui me semble plus pertinent c’est d’enlever l’appel à la fonction « basename » qq lignes plus loin. Peux-tu essayer sur ton installation, et préciser le chemin d’accès au plugin ?
Bon, je pense que cette fois 46795 devrait mettre tout le monde d’accord.
Répondre à ce message
Bonjour,
J’ai recueilli mon premier don par PayPal aujourd’hui (à mes frais, on n’est jamais mieux servi que par soi-même !).
Dernière remarque, pour recevoir la notification instantanée de paiement (IPN) il faut modifier le fichier spipal_valider_paiement.php en forçant la valeur de l’url.
L’url récupérée dans l’environnement est celle qui a été insérée dans la config de Spipal. C’est l’url complète (https:// etc) sinon PayPal renvoie une erreur 405. La fonction fsockopen attend plutôt quelque chose de la forme « www.example.com ». La méthode est un peu brutale, le mieux serait d’extraire l’url pour le fsockopen à partir de l’url complète.
Cordialement.
Désolé, j’avais bien programmé ça mais ne l’avais pas envoyé contrairement à ce que je croyais.
La 45970 l’a bien maintenant.
Répondre à ce message
Bonjour,
Autre considération, le format du montant (prix) envoyé chez PayPal n’est pas contrôlé. On peut fonctionner avec des montants fixés au niveau de l’espace privé, mais dans le cas d’un don ce serait se priver soit d’un donateur plus généreux ou décourager un donateur moins bien pourvu. Je préfère donner la possibilité au donateur de modifier le montant proposé.
Or PayPal n’accepte pas un montant où figure une virgule (15,50), il faut un point (15.50). On n’est pas sûr qu’en permettant la modification du montant, une virgule ne soit pas introduite, ce qui génèrera un message d’erreur et risque de décourager le donateur. Le plus drôle, c’est qu’une fois cette valeur passée chez PayPal, dans l’environnement français, tous les montants sont affichés avec des virgules.
Dans notre environnement SPIP, l’idéal serait de manipuler les montants avec virgule puis de la remplacer par un point au moment de l’envoi chez PayPal. Mais ceci m’échappe techniquement.
Pour le moment, j’ai introduit un contrôle javascript qui remplace la virgule par le point même si celle-ci est introduite après que les chiffres aient été frappés dans formulaires/payer.html
Rien n’interdit de rentrer une deuxième virgule ou une troisième décimale (un montant à 3 décimales est refusé par PayPal), tout est possible, car comme on travaille avec une chaîne de caractères et pas avec un nombre, le contrôle de tous les cas possibles est assez difficile.
En attendant meilleures solutions,
Cordialement.
Répondre à ce message
Bonjour,
Un petit « détail ».
Depuis l’espace privé, lorsque le prix d’un article a été fixé, le formulaire est replié. Il faut cliquer sur « détails » pour déplier le formulaire. Je ne sais pas pourquoi ça ne marche pas. Par contre, on obtient le dépliage en passant par un changement de mode « vendre » -> « donner » ou inversement.
Dans inc/spipal-article.php, en passant par un OnClick, ça fonctionne.
Ces 2 formes en appelant le javascript par le Href ou par le OnClick sont, dit-on, équivalentes.
Cordialement.
Répondre à ce message
Bonjour,
Je passe peut-être à côté de quelque chose, mais sur la page de configuration du plugin j’obtiens ce qui suit :
configuration SPIPAL
Nom du plugin manquant
Merci
Ce message intervient lorsque le script n’a pas réussi à lire le fichier plugin.xml ou son cache. Vérifier les droits en lecture sur le répertoire du plugin et son contenu, et vider le cache.
Bon ça marche par intermittence, je dois vider souvent le cache.
merci
Bonjour,
J’ai la même erreur :
configuration SPIPAL
Nom du plugin manquant
Spip n’est pas à la racine du domaine, sinon j’ai mis 777 sur le rep spipal, les bons utilisateur/groupe...
vider le cache et tmp/
bonne journée.
Nicolas
Que SPIP ne soit pas à la racine du domaine n’est pas un problème, en revanche le répertoire « spipal » doit être dans le répertoire « plugins » qui lui-même doit être à la racine. C’est une limitation que je vais essayer de contourner, mais pour l’instant c’est ainsi.
Bon finalement, c’est réparé en 45046.
Merci, je vais tester ça.
Bonsoir,
Tous marche bien maintenant, juste le formulaire #FORMULAIRE_PAYER qui retourné seulement « Rien à Payer » car $row était vide du fait que id_article n’était pas récupérer, je ne sais pas pourquoi, j’ai bien le bouton qui apparaît si je met id_article=1 directement dans la fonction :
function formulaires_payer_charger($id_article=1, $validation=’valider’)
// compatibilite partielle avec l’ancienne version
if (!$id_article) $id_article = _request(’id_article’) ;
C’est cette dernière ligne qui récupère rien dans $id_article...
Bonne soirée.
Nicolas
Avez-vous bien écrit
#FORMULAIRE_PAYER{#ID_ARTICLE}
et à l’intérieur d’une boucle ARTICLES ou équivalent ?
En fait j’ai lu l’article en diagonale et donc de travers... j’avais rempli le champs rubrique et donc effectivement il faut utiliser #ID_ARTICLE à l’appel du formulaire car je voulais que tous les articles de la rubrique 1 soit concerné, mais en laissant vide ce champs de configuration (rubrique), ça le fait bien aussi.
Merci.
Bonne journée.
Nicolas.
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 :
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.
Suivre les commentaires : |