Abonnement

Attention, cette contribution est EN CHANTIER : elle n’est peut-être pas fonctionnelle.

Un plugin pour gérer les accès restreints sur abonnement (payant).
Compatible avec les plugins spip-listes, accès restreint et Inscription2.

Nota SPIP-Contrib : Un plugin en développement comme sa documentation [1]. Cet article-forum est là pour y aider, n’hésitez pas à vous en servir.

Téléchargement

Le zip est à reprendre sur l’espace de téléchargement de la zone

Documentation

Reprise de lisez_moi.txt


(Notice rapide par BoOz)

Installation

1) Assurez vous d’avoir préalablement intallé les plugins
-  cfg
-  inscription2
-  accès restreint
-  balise session (a priori c’est inclus dans spip 2.0)

2) Customiser la page commander.html

3) ajouter dans inc-entete en dessous de #FORMULAIRE_RECHERCHE :
<INCLURE{fond=fonds/inc-entree_profil}>

4) Ajouter dans une page _abonnement_.html avec un #CACHE{0}

[(#SESSION{id_auteur}|?{' ',''})			
	<fieldset style="margin:10px 0px">
	<legend>Informations personnelles</legend>
	<INCLURE(inc/profil_adherent.php){id_auteur = #SESSION{id_auteur}}> 
	</fieldset>
	<INCLURE{fond=fonds/mes_abonnements}>
]			

[(#SESSION{id_auteur}|?{'',' '})			
	#FORMULAIRE_INSCRIPTION2
]

5) Mettre pour la page article d’une rubrique en accès restreint :
<BOUCLE_article_principal(ARTICLES) {id_article}>

et le code HTML qui suit

</BOUCLE_article_principal></BOUCLE_article_principal>
		[(#ID_ARTICLE|AccesRestreint_article_restreint|?{' ',''}) <INCLURE{fond=article_restreint}{id_article}> ] 
		[(#ID_ARTICLE|AccesRestreint_article_restreint|?{'',' '}) Cette page n'existe pas ] 
<//B_article_principal>

6) Relooker la page article_restreint.html

7) Rendez-vous sur la page spip.php ?page=_abonnement_ pour utiliser le plugin

Démonstration

http://spip-zone.info/spip.php?page...

Notes

[1Vous pouvez aussi consultez aussi les commentaires des dépôts sur la zone.

TODO :

-  Vérifier les index de spip_auteurs_elargis_abonnements et le auto increment
-  mettre le montant payé dans spip_auteurs_elargis_articles
-  passer en cfg les mails automatiques de confirmation d’achat d’article

Discussion

18 discussions

  • 2

    Quelqu’un sait comment integrer ce plugin dans spip 3 ??????? Y a t il un plugin alternatif si celui ci semble mort ?

    Merci

    Répondre à ce message

  • 1

    Bonjour,

    Y-a-t-il quelque part une documentation pour la nouvelle version de ce plugin (pour SPIP 3) dans laquelle il est expliqué comment fonctionne le plugin et quel couplage est conseillé pour aller jusqu’au paiement sécurisé ?

    Merci d’avance

    Freed

    Répondre à ce message

  • Oh lala, c’est exactement ce que je veux pour mon site, mais etant novice en programation je ne sais pas comment adapter ceci à SPIP 3.1. ça me chagrinne de ne pas trouver une splution pour les versions recentes de spip. Quelqu’un sait it une idée ?

    Répondre à ce message

  • 1
    magic0176

    existe-t-il un équivalent pour spip 3.0.16 ?

    Répondre à ce message

  • 1

    Bonjour,

    Dès que j’essaie d’activer le plugin zabonnement je reçois l’erreur suivante :

    Fatal error : Call to undefined function selecteurgenerique_verifier_js() in /sitetest/plugins/auto/zabonnement/abonnement_pipelines.php on line 50

    Voici les plugins installés :

    Accès restreint 3
    CFG
    Champs extra2
    Champs extra date rubrique
    Facteur
    Vérifier
    Inscription 3
    Saisies
    SPIP_bonux

    Et je suis en 2.1.12.

    Avez-vous une idée de ce qui cause le problème ?

    Merci !

    • Bonsoir,

      j’ai également rencontré une fatal error lors de l’installation du plug-in, avec les mêmes prérequis, et une version de SPIP sensiblement identique (2.1.10 pour ma part, au lieu de 2.1.12).

      Ayant tenté de passer outre en vidant le cache de SPIP (oui c’est expéditif), je me retrouve désormais avec une magnifique erreur 500 dans l’interface privée de SPIP (pas la partie publique heureusement), qui m’interdit toute autre intervention dans l’immédiat. Et comme l’accès restreint gère le htaccess, impossible d’agir aussi de ce côté-là.

      Quels recours vous semblent donc envisageables pour retrouver a moins l’accès à l’interface privée, et si possible supprimer le plug-in avant une réinstall éventuelle ? Sur quelles tables de la base de données intervenir par exemple ?

      Une réponse rapide m’arrangerait évidemment beaucoup....

    Répondre à ce message

  • 1

    Bonjour

    Est ce que certain on tester le plugin sur 2.1 ? ou pas encore ?

    • Après avoir tester, j’ai le message suivant :
      Erreur SQL 1054
      Unknown column ’auteurs_elargis_abonnements.id’ in ’on clause’
      SELECT auteurs_elargis_abonnements.date, auteurs_elargis_abonnements.id_auteur, L1.prenom, L1.nom_famille, L1.adresse, L1.code_postal, L1.ville, auteurs_elargis_abonnements.validite FROM spip_auteurs_elargis_abonnements AS auteurs_elargis_abonnements INNER JOIN spip_auteurs_elargis AS L1 ON ( L1.id = auteurs_elargis_abonnements.id ) WHERE (auteurs_elargis_abonnements.statut_paiement = ’ok’) AND (MONTH(« 2012-01-22 10:08:10 »)-MONTH(auteurs_elargis_abonnements.date)+12*(YEAR(« 2012-01-22 10:08:10 »)-YEAR(auteurs_elargis_abonnements.date)) = 0) AND (auteurs_elargis_abonnements.id_abonnement = 1) ORDER BY auteurs_elargis_abonnements.date DESC
      ../plugins/abonnement/prive/exec/abonnements_stats.html _inscrits_ce_mois_ci 173

      Mais je travail pas avec des articles donc si quelqu’un avais une idée, je suis preneur.

    Répondre à ce message

  • sur spip 2.1.10 ce plugin à l’air de fonctionner correctement à part deux ou trois choses :
    est-il possible d’avoir un switchage automatique d’un accès restreint : ON / OFF en fonction de l’abonnement ? ?
    Auriez-vous déjà intégré un paiement paypal, pour voir votre code ?
    Merci !

    Répondre à ce message

  • Bonjour,

    Le plugin est il toujours en cours de developpement...
    Quid des incompatibilitées connues ?

    Fonctionne sur 2.12 ?

    Merci :)

    Répondre à ce message

  • 2

    Bonjour,

    Je découvre ce plugin doucement ;-)

    SPIP 2.0.9 + Abonnement 0.8 [32624]

    Quand je suis abonné, mon article s’affiche mais les images dans l’article et dans le portfolio ne s’affichent pas (pour un article de la zone à accès restreint) : même le portfolio utilisant la balise
    [(#INCLURE{fond=inc-documents}{id_article}{env})] ne renvoie rien.

    Mon humble contribution sera une notice des fichiers à paramétrer... quand je saurai lesquels ;-))))

    Merci de votre aide et pour le développement de cet outil.

    Cordialement,
    françois pradignac

    www.zigzag-francophonie.eu

    • Bonjour,

      après plusieurs essais, je m’apperçois que les images insérées provenant d’articles d’une rubrique « non restreinte » s’affichent.

    • Bonjour,

      ... je ne sais pas si je suis lu... tant pis, je continue ;-)

      [ J’utilise toujours les dernières version SVN ]

      Un visiteur enregistré, et ayant un abonnement valide, ne se trouve pas ajouté à la zone restreinte du plugin « accès restreint » ?
      Dans mes soucis d’affichage d’images et de documents liés à des articles restreint, ça m’arrangerai !!! puisque si j’ajoute un visiteur à cette zone, forcément tout fonctionne.

      BoOz ou NicolasR, si vous passez par là, merci de me donner votre opinion.

      françois

    Répondre à ce message

  • 10
    Aurélien

    Bonjour,

    une question toute bête mais fondamentale.

    Donc comment et quoi modifier pour diriger vers l’interface de paiement CB de la banque ?

    Merci d’avance !

    • Il faut modifier la page validation_banque.html, et l’adapter pour fournir les arguments attendus par la fonction traiter_message_banque($produit,$id_auteur_elargi, $reponse_banque, $hash_article)

    • Aurélien

      Bonjour,

      merci pour la réponse. Mais ne serait-ce pas plutôt la page « formulaires/abonnement_paiement.html » qu’il faut modifier, en remplissant les champs avec les infos bancaires ?

      Sinon, je ne comprends plus rien.

       :)

      Merci

    • Mais ne serait-ce pas plutôt la page « formulaires/abonnement_paiement.html »

      Si oui, aussi :p

      Il faut modifier l’envoi des données à la banque, et la reception du retour de la banque.

      Si vous réalisez des portages pour différentes banques, ca serait bien de les proposer ici.

    • Aurélien

      Moui, j’essaye de « brancher » Scellius dessus. Mais je ne progresse pas des masses, d’autant que je ne connais pas le fonctionnement du système CIC et que je ne peux pas avoir de points de comparaisons...

      Et je ne comprends pas ce qu’il faut modifier dans « validation_banque », hormis enlever le « echo ».

      Merci.

    • Hello,

      Essaie d’etre plus precis, par exemple en posant des liens vers le code dans le trac sur svn. Je ne sais pas de quoi tu parles la.

    • Oups, double post

    • Salut BoOz,

      je reviendrais un peu plus tard sur ma problématique de branchement avec Scellius.

      Là c’est juste pour signaler en passant une faute de frappe qui donne un mini-bug : http://zone.spip.org/trac/spip-zone/browser/_plugins_/_dev_/abonnement/plugin.xml?rev=22715#L30. Ligne 30 : il y a deux m à abonnement.

      Sinon le « echo » dont je parle précédemment est ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/_dev_/abonnement/validation_banque.html?rev=22715. A la ligne 2. Je ne vois pas ce qu’il faut modifier d’autre...

      Merci !

    • juste pour signaler en passant une faute de frappe

      Merci, corrigé.

      Sinon le « echo » dont je parle précédemment est ici : http://zone.spip.org/trac/spip-zone/browser/_plugins_/_dev_/abonnement/validation_banque.html?rev=22715. A la ligne 2.

      Oui c’est ca, il te faut récuperer de la réponse de la banque les arguments attendus par la fonction traiter_message_banque($produit,$id_auteur_elargi, $reponse_banque, $hash_article)

      Lesquels éléments sont passés à la banque sous la forme d’une chaine de carractere dans le formulaire abonnement_paiement.html (derniere etape du processus de paiement).

    • Salut BoOz,

      je me pose une question en rapport avec le fichier "abonnement_paiement http://zone.spip.org/trac/spip-zone/browser/_plugins_/_dev_/abonnement/formulaires/abonnement_paiement.html?rev=24831.

      Bon, je viens de trouver 2-3 indices sur le fonctionnement de l’API CIC. Ce qui me permet d’avoir un point de comparaison.

      ATOS ne fonctionne pas du tout comme le module du CIC.

      Bon a priori, il faut que je colle ce qui suit à la place du bazar CIC (de la ligne 31 à 91) :

      print ("<HTML><HEAD><TITLE>ATOS - Paiement Securise sur Internet</TITLE></HEAD>");
      	print ("<BODY bgcolor=#ffffff>");
      	print ("<Font color=#000000>");
      	print ("<center><H1>PAIEMENT SECURISE ATOS </H1></center><br><br>");
      	print ("<center><H1>" . $monsite->valeur . "</H1></center><br><br>");
      
      	//		Affectation des paramètres obligatoires
      
      	$parm="merchant_id=$merchant_id";
      	$parm="$parm merchant_country=fr";
      	$parm="$parm amount=$total";
      	$parm="$parm currency_code=978";
      
      
      	// Initialisation du chemin du fichier pathfile (à modifier)
          //   ex :
          //    -> Windows : $parm="$parm pathfile=c:\\repertoire\\pathfile";
          //    -> Unix    : $parm="$parm pathfile=/home/repertoire/pathfile";
          //
          // Cette variable est facultative. Si elle n'est pas renseignée,
          // l'API positionne la valeur à "./pathfile".
      
      		$parm="$parm pathfile=conf/pathfile";
      
      	//		Si aucun transaction_id n'est affecté, request en génère
      	//		un automatiquement à partir de heure/minutes/secondes
      	//		Référez vous au Guide du Programmeur pour
      	//		les réserves émises sur cette fonctionnalité
      	//
      	
      	$parm="$parm transaction_id=" . $_SESSION['navig']->commande->transaction;
      	
      	$path_bin = "bin/request";
      
      
      	//	Appel du binaire request
      
      	$result=exec("$path_bin $parm");
      
      	//	sortie de la fonction : $result=!code!error!buffer!
      	//	    - code=0	: la fonction génère une page html contenue dans la variable buffer
      	//	    - code=-1 	: La fonction retourne un message d'erreur dans la variable error
      
      	//On separe les differents champs et on les met dans une variable tableau
      
      	$tableau = explode ("!", "$result");
      
      	//	récupération des paramètres
      
      	$code = $tableau[1];
      	$error = $tableau[2];
      	$message = $tableau[3];
      
      	//  analyse du code retour
      
        if (( $code == "" ) && ( $error == "" ) )
       	{
        	print ("<BR><CENTER>erreur appel request</CENTER><BR>");
        	print ("executable request non trouve $path_bin");
       	}
      
      	//	Erreur, affiche le message d'erreur
      
      	else if ($code != 0){
      		print ("<center><b><h2>Erreur appel API de paiement.</h2></center></b>");
      		print ("<br><br><br>");
      		print (" message erreur : $error <br>");
      	}
      
      	//	OK, affiche le formulaire HTML
      	else {
      		print ("<br><br>");
      		print ("  $message <br>");
      	}
      
      print ("</BODY></HTML>");

      En espérant que les requêtes passent bien.

      Au fait, où as-tu placé les fichiers de l’API ? J’ai utilisé le répertoire cgi-bin sur le serveur mais peut-être fais-je erreur ?

      Merci !

    • Ben moi j’ai fait deux choses :

      1) placer le formulaire de paiement de la banque sur le squelette abonnement paiement.html

      2) ajouter dans un fichier php sur mon serveur les codes de l’api bancaire fourni par la banque, c’est ce fichier qu’appelle la banque pour valider les transactions, et qui se termine par l’appel a la fonction traiter_reponse_banque() du plugin abonnement.

    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