Transaction : créer des formulaires avec paiement en ligne

Transaction est une extension du plugin de création de formulaires Formidable pour concevoir des formulaires de paiement en ligne et les connecter aux principales API bancaires françaises.

Attention, l’interface de paiement avec les prestataires bancaires n’est plus maintenue dans ce plugin. On préfèrera l’alternative Paiement avec Formidable qui utilise le plugin de gestion des prestataires bancaires https://github.com/nursit/bank

Présentation

Transaction introduit 3 nouveaux types de champs, qui modifieront le comportement d’un formulaire lorsque ceux-ci lui sont ajoutés.

Un champ “montant fixe” pour définir un prix
Ce champ offre la possibilité de définir un montant qui sera associé au formulaire. C’est le montant qui sera réglé par le visiteur après avoir validé le formulaire. Ce mode est le mode classique pouvant être utilisé pour l’achat d’un produit.

Deux champ “saisie montant” et “sélection montant” : c’est l’internaute qui choisit le montant à payer
Ces deux champs offrent au visiteur la possibilité de saisir un montant libre ou de sélectionner un montant parmi une liste de montant proposés. Ce mode de fonctionnement est utilisable par exemple dans le cas d’un formulaire de don.

L’interface de paramétrage des traitements associés au formulaire est complétée de nouveaux traitements dédiés au paiement en ligne : un traitement par module de paiement bancaire.

Modules de paiement livrés avec les plugin

CMCIC Crédit Mutuel, CIC, Banque OBC,..
PAYPAL Paypal
CHEQUE Paiement par chèque
VIREMENT Paiement par virement
ATOS Société Générale, BNP Paribas (Mercanet)
PAYBOX Crédit coopératif, La poste,...

Ce sont des adaptations des modules de paiement Thélia.

Installation

Le plugin transaction s’installe comme tout plugin SPIP et requiert l’installation préalable du plugin Formidable.

Appel du formulaire

Il est possible d’appeler le formulaire formidable en l’appelant par son id

  • dans un article <formulaire|formidable|id=34> ou bien <formulaire|formidable|id=contact>
  • depuis un squelette : #FORMULAIRE_FORMIDABLE{34} ou bien #FORMULAIRE_FORMIDABLE{contact} ; il est alors possible de passer en paramètre la valeur de certains champs par exemple celui du montant fixe #FORMULAIRE_FORMIDABLE{contact, #ARRAY{montant_fixe_1, Ma valeur}}

ou d’utiliser le modèle transaction pour appeler le formulaire en passant en paramètre la valeur du champ.

  • dans un article <transaction|id=contact|montant_fixe_1=Ma valeur>

Message de retour du formulaire

Attention : il ne faut pas utiliser le « message de retour » de formidable dans la configuration du formulaire sinon celui-ci prends le devant et aucun mode de paiement ne s’affiche à la validation du formulaire.

Paramétrage

Documentation extraite des modules Thélia et adaptée pour Transaction

  • Paramétrage CMCIC
    • Editez le fichier paiement/cmcic/config.php et configurez les variables avec les données que vous a fournit votre banque.
    • La banque vous fournira toutes les valeurs (exceptées les url de retour)
    • Pour utiliser la réponse automatique, vous devrez fournir l’url à appeler à votre banque. Renommez paiement/cmcic/paiement_cmcic_confirmation.php avec un nom personnalisé (ex : confirmdupond2011.php)
    • Dans l’onglet “configurer les traitements” associé au formulaire, indiquez quelle API bancaire doit être appelée parmi CIC, Crédit Mutuel ou Banque OBC, et activez le mode test ou le mode production.
  • Paramétrage Paypal
    • Dans l’onglet “configurer les traitements” associé au formulaire, indiquez simplement l’adresse email du compte à créditer.

L’Environnement de test PayPal permet de tester la plupart des aspects du système PayPal incluant la notification instantanée de paiement. Pour effectuer un test sur l’Environnement de test :

-  1. Créez un compte développeur dans l’Espace Intégration http://developer.paypal.com
-  2. Créez un compte Personnel dans l’Environnement de test et ajoutez une carte bancaire.
-  3. Créez un compte Business dans l’Environnement de test puis ajoutez et confirmez un compte bancaire.
-  4. Dans votre bouton PayPal et le script de gestion NPI, utilisez l’URL https://www.sandbox.paypal.com/cgi-bin/webscr là où vous utiliseriez normalement https://www.paypal.com/cgi-bin/webscr.
-  5. Procédez à un paiement en utilisant l’email et le mot de passe du compte Personnel pour la connexion.

  • Paramétrage Paybox
    • Renommez paiement/paybox/paiement_paybox_confirmation.php avec un nom personnalisé (ex : confirmdupond2011.php)
    • Editez le fichier paiement/paybox/paiement.php et remplacez les valeurs par les valeurs fournies par paybox.
  • Paramétrage ATOS
    • Copiez les binaires fournis par ATOS dans le répertoire paiement/atos/bin/
      il s’agit de request et response
    • Renommez paiement/atos/paiement_atos_confirmation.php avec un nom personnalisé (ex : confirmdupond2011.php)
    • Copiez le contenu du certificat fourni par votre banque dans paiement/atos/conf/certif.fr.xxxxxxxxxxxxxxx
    • Editez le fichier paiement/atos/conf/parcom.xxxxxxxxxxxxxxx et indiquez les bonnes url (n’oubliez pas de remplacer paiement_atos_confirmation.php par votre nom personnalisé)
    • Renommez les fichier paiement/atos/conf/certif.fr.xxxxxxxxxxxxxxx et paiement/atos/conf/parcom.xxxxxxxxxxxxxxx
      remplacez tout simplement les xxxxxxxxxxxxxxx par votre n° de marchand
    • Editez le fichier paiement/atos/paiement.php et inscrivez votre n° de marchand.

Sécurité des données bancaires et validation des paiements

Tous les paiements bancaires s’effectuent sur le site des banques, aucune donnée bancaire (numéro de carte, code de vérification, ...) n’est traitée dans l’environnement SPIP.

Comme dans tout module de vente en ligne, il convient de toujours vérifier qu’un paiement a été effectivement réalisé dans l’espace d’administration de vos paiements reçus, fourni par votre banque.

Exemple - démo

Voici un formulaire en phase de mise en place, que vous pouvez tester. Le portail CMN utilisé ici ne traitant que le montant, le formulaire se charge de recueillir les coordonnées complètes du donateur. Dans le cas d’un paiement par Paypal, cela serait inutile puisque Paypal se charge déjà de les recueillir (autre exemple à venir).

Discussion

47 discussions

  • 1

    Bonjour,

    Je me demandais si ce plugin pouvait permettre de réaliser un (petit) site de vente en ligne.

    Quand je lis tout ça, j’ai l’impression que l’on est cantonné à un paiement pour une chose, il n’y a pas de panier pour acheter 2 choses, il faut que ce soit lié à un « formidable » qu’il faudrait donc lier à un objet (imaginons par ex que cet objet soit décrit dans un « article » au sens spip) ...

    Bref si quelqu’un a un retour d’expérience (ce pour quoi c’est utilisé en général, ou alors la quantité petite ou grande de bidouilles qu’il faut faire pour faire l’équivalent d’un Thelia, enfin d’un genre de Thelia), etc ... ) A quoi vous l’utilisez par ex ? pour l’instant la seul appli que je vois c’est effectivement le truc style don ou cotisation d’assoc.

    • J’ajoute que je suis déjà un utilisateur de Thelia mais que le plugin correspondant me semble compromis étant donné l’arrivée de Thela 2 entièrement refondu ... et que j’ai trouvé un plugin « paniers » (sur http://plugins.spip.net/paniers.html) qui semble en cours de dev sans aucune page ici sur contrib ... mais qui pourrait peut-être se combiner avec Transactions ;..

    Répondre à ce message

  • Eterzere

    Bonjour,

    Sous SPIP 3.05 et plugins Formidable 1.3.6 et Transaction 0.3.1, le formulaire CMCIC affiche toujours un champ montant=0.
    Visiblement, le montant_1 du formulaire n’est pas récupéré, via SESSION[’total’].
    J’ai tenté également un montant fixe via l’appel du formulaire, idem. Les valeurs ne sont pas transmises...

    Merci de vos conseils

    Répondre à ce message

  • 1

    J’utilise le plugin avec satisfaction malgrès la non gestion dynamique des emails.
    et petit détail génant le formulaire n’envoie pas les centimes au système de paiement ( paybox)
    avec la virgule comme séparateur, on est obligé d’utiliser le point comme séparateur.
    Comment puis-je régler ce problème ?
    Cordialement,
    m

    • un petit (gros) UP donc comment faire pour que la virgule soit reconnue comme séparateur ?

      Merci !

    Répondre à ce message

  • 1
    Pierre-Jean

    Bonjour,

    Je cherche à savoir si il est possible avec Transaction et le mode de règlement Paypal de :

    -  Vendre des produits dématérialisés avec l’envoi du lien vers la page de téléchargement dans un mail envoyé à l’acheteur après le retour paypal.

    -  Permettre l’achat de plusieurs « objets » au sein d’une même transaction. Dans mon cas il s’agit d’une collection de livres que l’utilisateur doit pouvoir commander unitairement ou en choisissant plusieurs lors de sa commande.

    Si certaines choses ne sont pas possible, serait-il possible d’avoir des pistes, et diverses alternatives ?

    Je vous remercie par avance pour votre aide !

    • Polar oïd

      Salut, à ma connaissance le plugin n’envoie pas de mail après le retour de l’IPN Paypal, ni en admin ni en user... ce qui manque d’ailleurs à propos de ce plugin... Par contre Paypal redirige ensuite l’utilisateur vers une page de paiement confirmée qui est unique à la fin de la procédure de paiement. Je ne sais pas si il serait possible de passer différentes variables d’url pour renvoyer sur différentes pages pour accéder par exemple aux contenus payés...

      L’information de paiement validée en base de données pourrait servir théoriquement à confirmer ou infirmer l’accès vers des contenus téléchargeables à condition d’intégrer une étape de téléchargement via un squelette prévu à cette effet mais cela impliquerait que l’utilisateur soit en session sur le site (login + password) pour y accéder en fonction de son N° de réponse au formulaire et de la référence de paiement...

      Ton sujet de vente de produits dématérialisés est très intéressant, nous pourrions continuer cette discussion si tu le souhaites et sur la base mon expérience en la matière...

    Répondre à ce message

  • Bonjour,

    J’ai un probleme avec le « AUTO_RESPONSE_URL » du fichier « parcom.xxxxxx ».
    Du coup la mise à jour du statut_transaction dans base de donnée ne ce met pas à jour... Il reste toujours à 0

    J’ai l’impression que ce paramètre n’est pas pris en compte, est-ce parce que j’utilise le mode test qu’il n’appel pas cet url lors de la validation du paiement ? Ou faut-il avoir notre vrai certificat de marchand pour que ce « AUTO_RESPONSE_URL » puisse fonctionner ?

    Je demande que l’on m’aide ou une piste pour résoudre ce problème.
    Merci d’avance

    Répondre à ce message

  • Polar oïd

    Bonjour,

    J’utilise le plugin Transaction avec un formulaire dont les traitements sont configurés comme suit :

    Paiement par chèque
    Traitement du paiement Paypal
    Envoyer par courriel
    Enregistrer les résultats

    Dans le cas d’un paiement par chèque, au niveau de la mise en forme du message de retour, le plugin offre un champ de saisie textuel permettant de personnaliser ce message. Afin d’afficher le montant saisi dans le formulaire, il est possible d’utiliser la balise %montant% pour retourner la valeur en question au niveau du texte.

    J’aimerais comprendre le mécanisme de fonctionnement de la balise %montant% afin de pouvoir éventuellement fabriquer une balise sur le même modèle et qui retournerait les valeurs dont j’ai besoin...

    J’aimerais savoir comment faire pour afficher par exemple la référence de transaction en cours à ce même endroit. Au terme de mes expérimentations actuelles, j’observe qu’il n’est pas possible d’appeler un modèle pour faire un inclure ni de faire fonctionner une balise comme par exemple #SESSION{id_auteur} dans ce champ textuel.

    L’auteur de ce plugin pourrait-il se pencher sur cette question ?

    Merci d’avance !

    Répondre à ce message

  • 2

    Bonjour,
    J’essaie en vain de faire fonctionner le paiement PAYBOX en vain avec ce plugin.
    J’ai configuré paiement.php ( paramètres mode test : $mode, $site, $rang, $id ...), mis le bon chemin pour le module cgi , mais j’ai quand même une erreur récurente :
    PAYBOX INPUT ERROR (code -7)
    ce qui correspond à « Il manque une variable obligatoire »
    et je ne vois pas laquelle ?

    Quelqu’un aurait il eu ce genre de problème et pourrait m’aider ?

    PS : n’y a t’il pas une clé HMAC obligatoire à rentrer maintenant comme sur le plugin de Thélia qui lui fonctionne très bien ?

    • Bonjour,
      Problème en parti résolu, j’avais oublié de renseigner PBX_PORTEUR
      l’erreur a disparue, mais maintenant à la connexion à paybox j’ai :
      Problème d’identification du commerce.
      Accès refusé !

      pourtant je n’ai mis que des valeurs de test :
      $mode = ’1’ ;
      $site = ’1999888’ ;
      $rang = ’32’ ;
      $id = ’110647233’ ;

      OU est-ce que ça coince ? ....

      Merci pour votre aide.

    • Désolé du bruit

      Cela fonctionne avec des paramètres d’identifiants réels en non de test

      Cordialement.

    Répondre à ce message

  • Le système de paiement SYSTEMPAY qui remplace SISP/ATOS a t’il été intégré au plugin ?

    Répondre à ce message

  • 5

    Bonjour,

    Une question bête : est-ce qu’il faut installer le plugin Thélia ? car lorsque je valide mon formulaire (je teste avec le paiement paypal) les données saisies sont bien envoyées avec "merci votre demande a bien été envoyée) mais aucun bouton paypal n’apparaît donc pas de possibilité de paiement.

    dd

    • Bonjour,

      J’ai le même problème.
      Faut-il effectuer une manipulation de configuration ou l’appel à la page ad-hoc est automatique ?

      Bien cordialement,
      Bruno.

    • Je vai répondre à ma propre question : ;-)

      Dans la section « configurer le formulaire » de l’édition de ce formulaire, il faut choisir pour « Afficher ensuite » l’option « rediriger vers une nouvelle adresse » puis entrer en-dessous l’adresse de redirection.

      Par exemple, pour uen redirection vers paypal, il faut taper :
      http:///plugins/transaction/paiement/paypal/paiement.php

      Bien cordialement,
      Bruno.

    • bonjour
      d’ou vient cette url ? mon navigateur m’affiche une erreur ..Je rencontre le même problème que vous
      merci de votre aide
      Manu

    • Bonjour,

      L’URL à entrer est par défaut :
      http://www.toto.fr/plugins/transaction/paiement/paypal/paiement.php

      En remplaçant toto.fr par le nom de votre site.
      Le chemin après le nom du site est le chemin d’accès par défaut aux fichiers du plugin.

      Attention à la manière dont est configuré votre fichier .htacess
      Il faut que l’on ait accès au fichier paiement.php

      Bien cordialement,
      Bruno.

    • super merci Bruno ..
      plusieurs champs « montant » certains fixes d’autres libres peuvent ils etre rajoutés dans un même formulaire ? (pour gérer par ex un don et un l achat d’un article) merci

    Répondre à ce message

  • Bonjour,

    Ce plugin peut-il fonctionner avec la solution Systempay de la Banque populaire ?

    Merci d’avance,

    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