SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

42 visiteurs en ce moment

fontsizeup fontsizedown
[23 commentaires]

Abonnements

jeudi 8 novembre 2007, par BoOz, NicolasR

0 vote

Cet article présente une contrib "en chantier". Elle n’est donc pas toujours fonctionnelle.

Cet article est une documentation en chantier, donc pas forcément complète...

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

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}

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

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

[1] Vous 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

Retour en haut de la page

23 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3

  • Répondre à ce message

    2 décembre 2008 15:30 , par BoOz

    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

    2 décembre 2008 13:37

    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_paiemen t.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 !

  • Répondre à ce message

    1er décembre 2008 15:33 , par BoOz

    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.... 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).

  • Répondre à ce message

    1er décembre 2008 12:51 , par Aurélien

    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 !

  • Répondre à ce message

    1er décembre 2008 12:50 , par Aurélien

    Oups, double post

  • Répondre à ce message

    26 novembre 2008 15:35 , par BoOz

    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.

  • Répondre à ce message

    26 novembre 2008 14:36 , par 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.

  • Répondre à ce message

    26 novembre 2008 12:25 , par BoOz

    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.

  • Répondre à ce message

    26 novembre 2008 12:08 , par 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

  • Répondre à ce message

    19 novembre 2008 18:20 , par BoOz

    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)

Pages 1 | 2 | 3

Répondre à cet article

Retour en haut de la page

Ça discute par ici