Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] plugin paypal

Posted by chris on 07/25/2007 00:03

Bonjour,

<On peut toujours rêver>

Personne n'aurait déjà développé un plugin pour paiement paypal par hasard ?

</On peut toujours rêver>

  [Opened] Re: plugin paypal

Reply #1 Posted by bballizlife on 07/25/2007 09:48

Apparemment non, et en tout cas je n'en ai pas encore fait (pas eu besoin de paypal pour le moment).

Mais la forge accueillerait ta contribution avec plaisir ;))


N'importe comment c'est dans la doc

  [Opened] Re: plugin paypal

Reply #2 Posted by laurentj on 07/26/2007 11:22

Ba faudra faire un plugin de template du genre

  {paypal 'nom_du_compte'}

Ou un truc dans ce genre (peut être d'autres arguments, je ne sais pas ce qu'il lui faut exactement comme information).

Mais à mon avis, ça doit être trivial à faire.

  [Opened] Re: plugin paypal

Reply #3 Posted by laurentj on 07/26/2007 15:14

@bballizlife

Je peux me tromper, mais à ce que je vois sur les sites où il y a un bouton paypal, le "bouton" se resume à un formulaire vers le site paypal, avec des infos cryptés dans des champs cachés. D'ailleurs, ça semble être confirmé, sur la page pour les développeurs chez paypal : https://www.paypal.com/IntegrationCenter/ic_standard_home.html

Donc le plugin paypal va simplement générer un formulaire. D'ailleurs, il en faudra plusieurs je pense {paypal_bynow}, {paypal_donate} etc.. Et on pourrait avoir un fichier ini à remplir pour les informations "standards" (id merchant ou ce genre de chose).

Bref, pas de controller ou de lib à installer à mon avis.

  [Opened] Re: plugin paypal

Reply #4 Posted by laurentj on 07/26/2007 15:38

Les plugins de template (ce dont je parle), ce sont juste des petites fonctions pour générer quelque chose dans un template. Rien de compliqué ni d'extraordinaire donc. Et ce n'est pas du tout en opposition avec la création d'un module ou autre, c'est même plutôt complémentaire.

  [Opened] Re: plugin paypal

Reply #5 Posted by laurentj on 07/26/2007 21:05

Je ne sais pas si je suis bien clair...

Je pense comprendre. En fait, tu te demandes comment réaliser ton module de sorte qu'il puisse être réutilisable facilement dans une autre appli.

Passer par une DAO me semble imposer des choix peut-être pas nécessairement justifiés.

Certes, surtout qu'on ne veut pas forcément enregistrer des informations en base de données. Voir même ne pas tenir compte des infos de retour : juste savoir si ça s'est bien passé ou non pour afficher un message adéquate (genre pour un don paypal, on s'en fout un peu de savoir si le gars a bien payé ou pas).

Comme Paypal peut être utilisé pour différent type de paiement qui ne nécessite pas les mêmes traitements métiers en retour, je te propose juste alors de faire une classe, qui s'occuperait juste de récupérer les données, de les trier et éventuellement les reformater ou faire quelques traitement de base (je sais pas vraiment ce que paypal retourne..) et c'est tout. Et en fait le developpeur est chargé de se faire son propre contrôleur, dans laquelle il appelerait cette classe paypal pour récupérer les données. Genre :

  function myAction(){
    $paypal = new Paypal();
    $paypal->loadParams(); // il va chercher tout seul les données dans le request, 
                           // faire ses traitements
                           // et stocker les données dans des propriétés
  
    if($paypal->status == Paypal::PAYMENT_OK) {
       // j'affiche mes propres trucs ou sauve les données etc..
    }else{
      //etc...
    }
  }

Bon maintenant faut voir si finalement ça vaut le coup de faire cette classe, parce que si ce qu'elle a à faire c'est juste récupérer les données...

À étudier. Faut juste faire attention : quand on veut faire trop générique, on en arrive parfois à faire des usines à gaz qui sont tout aussi pénibles à utiliser que de faire soi-même les traitements.

  [Opened] Re: plugin paypal

Reply #6 Posted by bballizlife on 07/27/2007 10:04

Je reviens dans la discussion ;)

Laurentj : ok pour les plugins jTpl pour générer les boutons paypal et utilisant un fichier de conf. C'est même nécessaire.

Ensuite, pour intercepter la réponse de paypal, on peut imaginer plusieurs possibilités mais pourquoi ne pas proposer de quoi effectuer les vérifications et lancer des évènements comme "paypalPaymentSuccess" et "paypalPaymentFail". En charge ensuite au développeur de coder ses propres listeners pour réagir aux évènements et effectuer ses traitements métiers. A la limite on pourrait même déjà proposer les listeners avec un code métier vide. Non ?

Se je résume ma pensée ce matin, pour paypal, on pourrait avoir :

  • fichier de conf paypal.ini.php
  • plugins jTpl pour affichage des boutons
  • controller "paypal" avec une action "response" qui utilise, si besoin, une classe métier pour analyser les données reçues par paypal. L'action effectue les vérifications de bon ou mauvais paiement. En fonction du test : on lance des évènements adéquats et on pourrait rediriger vers une action, à définir dans le fichier de conf paypal.
  • les listeners seraient déjà prêts dans le module "paypal" et le développeur n'aurait plus qu'à implémenter sa logique métier.

Qu'en pensez-vous ?


N'importe comment c'est dans la doc

  [Opened] Re: plugin paypal

Reply #7 Posted by Estee on 02/04/2008 20:25

Bonjour chris,

Je viens au nouvelle concernant le plugin Paypal (modif,etc par rapport au script fournis en première page).

As tu terminé, je serais intéressé par les sources si dispo.

Merçi.

  [Opened] Re: plugin paypal

Reply #8 Posted by YvesTan on 02/05/2008 10:00

EDIT > Pt... moi aussi j'avais pas vu les 3 pages. Faut que je m'habitue à ce forum ;) Mon post est aussi inutile mais bon !

Je ne sais pas si ca peux aider mais...

Sur le framework perso basé sur des libs PEAR que j'utilisais avant de me lancer avec jelix, j'ai développé un système de caddie et de paiement via paypal pour mes clients (avec la NIP notification instantanée de paiement).

C'est en production ici : http://www.beauburo.com/ecouter

J'ai un controlleur "Panier" avec les actions concertants le panier, la validation de la commande, la validation IPN, les retours succes/cancel depuis paypal. des templates pour le panier, l'ipn...

Les infos de commande sont stockées dans une table. Par contre pas de création de compte client comme sur un vrai site e-commerce.

J'ai fais un truc assez modulaire pour que ça marche avec tout type de produits ET sur un site existant. Le module est aussi commun à plusieurs sites.

Quand on clique sur ajouter un produits au panier, ca envoi : ?addItem=nomdao,iddao

Dans chaque DAO, il doit y avoir une method getInfosCart qui renvoi le prix et le nom de l'item.

C'est pratique car du coup ca se pose sur une structure de données existantes.

Bon je résume comme je peux mais ca pourrait-être une approche pour fabriquer un panier modulable pour jelix ;) ?

Pour l'IPN, j'ai utilisé : http://www.micahcarrick.com/04-19-2005/php-paypal-ipn-integration-class.html pour pas me casser la tête.

Le code de ce truc à votre disposition :)

 
Page
  1. plugin paypal