Formulaire de paiement en ligne SANS PASSER par e-Commerce ou Ubercart

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'aurai besoin de réaliser un petit formulaire simple de réservation avec une solution de paiement en ligne au final.

En gros, les utilisateurs du site saisissent quelques champs qui déterminent par les CCK Computed Field le montant total à payer. J'aimerai que sur la validation de la création ceci m'emmène vers ma solution de paiement en ligne (en gros POSTER vers mon fournisseur les différents éléments).

Puis j'ai besoin d'interpréter le retour de mon fournisseur pour envoyer un mail de confirmation à l'utilisateur.

Mes questions sont donc :
- est-ce possible sans développement ?
- est-ce possible sans e-commerce ou ubercart ?
- comment gérer les enchainements entre les différentes étapes de processus de paiement ? par des worklow avec des états sur mon node???

Merci par avance

Version de Drupal : 

Hello
Je ne comprends pas bien quelle est ta solution de paiement en ligne (poster vers le fournisseur me semble vague), peux tu détailler ? Comment tes utilisateurs vont payer (cheque, CB, paypal...)?
Si les utilisateurs doivent saisir un numéro de CB il faut passer par une plateforme de paiement sécurisé et dans ce cas là, c'est ceux qui t'envoie un dossier expliquant ce dont ils ont besoin pour traiter ta demande.

Sinon globalement, sans développer ça me parait un peu délicat mais avec plus de détails je pourrais t'en dire plus.

Tout d'abord merci d'avoir pris le temps de me répondre.
Le paiement se fera par CB sur le site de mon partenaire DATATRANS.
Pour l'intégration, le fournisseur propose un formulaire avec quelques champs à mettre en place (merchant id, montant, cartes autorisés etc.) ex : http://pilot.datatrans.biz/showcase/reduced_sel_source.html ; en POSTant ce form, on se retrouve sur le site du marchand pour "payer". Une fois le payment effectué, on doit être re-rooté sur la page précédente.

Hello,

J'ai développé un petit module qui a vocation à s'interfacer avec le système de paiement ATOS (celui utilisé par ubercart et e-commerce il me semble) mais sans tout ce qui concerne les 2 applications pré-citées. Si c'est ce que tu veux faire alors oui c'est possible mais pas sans développement normalement à moins qu'un module existe (je n'avait rien trouvé de concluant quand j'ai fait le mien).

c'est possible sans ubercart et e-commerce mais par contre tu devras toujours utilisé un système comme ATOS ou autre si il existe pour gérer le paiement avec les banque je pense

Tout d'abord, merci pour avoir pris le emps de me répondre.

Effectivement, je cherche à me coupler avec une interface de paiement toute bête : DATATRANS
Voici un exemple du formulaire qui permet sur le submit d'être router sur le site de Datatrans pour faire le paiement.
http://www.drupalistic.net/module/node-reference-url

Donc pour résumer ce que je veux faire :
1) l'utilisateur crée un contenu
2) à la validation de contenu
- les computed fields détermine le montant total à payer
- un bouton permet de valider le total et d'aller sur le site de paiement en ligne (en gros en postant le formulaire exemple cité avant)
3) le retour de la page de paiement est interprété pour envoyer un mail de confirmation.

Si tu penses pouvoir m'aider dans la réalisation de ceci, je t'en serais vraiment très reconnaissant

Ok, donc ta seule solution c'est d'utiliser leur formulaire (ou d'en créer indentique via l'API des formulaire de drupal mais c'est plus long). Ce sont les attributs name qui sont primordiaux dans ces formulaires (et aussi l'url donné dans le "action" du formulaire) donc je vois pas comment faire coller tout ça sans développement désolé :-/

Il faut que tu leur envoies d'une façon ou d'une autre ce formulaire. La solution la plus rapide serait peut être de garder ton node, puis d'utiliser contemplate par exemple pour que ton type de contenu intégre le code de ton formulaire mais en prenant les données de ton node ?

edit : pour le retour, ça va demander aussi du developpement, en général il y a moyen de récupérer une variable au retour de la boutique, à toi de l'exploiter ensuite en développant...

Le module Rules peut t'aider peut être, ubercart s'en servait dans drupal 5 pour faire changer l'état d'une commande selon certains critères.

Ca a l'air d'être le même principe que atos

As tu fait une demande d'ouverture de compte de test sur le site de DATATRANS ?? a mon avis ils vont te fournir les fichiers de certificat (de test) nécessaire et peut être aussi des document pour t'aiguiller dans ton développement

Ce n'est peut être pas exactement le même principe que atos dans la mesure où celui-ci demande l'installation de binaires pour crypter/décrypter les données sur le serveur, ce qui devient un peu plus prise de tête. Peut être que ce n'est pas le cas avec Datatrans?

Effectivement, Datatrans ne requiert pas d'installation, mais bel et bien de "simplement" poster un ensemble de variable sur une URL précise pour accéder à la page d'achat.

Enfin c'est ce que j'en ai compris. Maintenant, je voulais être sûr que c'était techniquement possible avant de souscrire.

Pour ce qui est de faire du DEV, avez-vous des conseils sur comment faire car je suis novice en dev sous Drupal et je ne vois nullement comment commencer

En gros tu peux utiliser ton node si tu en a besoin pour récolter les infos.
Si tu veux absolument garder ton node, tu dois faire en sorte qu'il soit d'un type de contenu particulier "réservation" par exemple.

Ensuite tu devrais faire un tempplate spécifique pour ce node dans lequel tu incluras ton formulaire, prérempli par les variable de ton node (je te conseille le module contemplate si tu n'es pas familier de ce genre de chose). Tu devrais cacher tous les champs de ton formuliare (type="hidden") sauf le bouton submit qui affichera "payer en ligne" par exemple; et qui t'enverra sur la plateforme de paiement.

Ce ne sont que des pistes.

Le module rules peut t'être utile également, combiné à token c'est un allié très puissant si tu ne maitrise pas encore l'API de Drupal et ses hooks.

tu vas certainement devoir créer ton propre module pour ta demande, donc tu vas avoir un peu de boulot. Je te conseille de bien comprendre drupal avant de te lancer billet en tête dans un module

familiarise toi avec quelques module et vas faire un tour ici http://www.kolossaldrupal.org/ qui propose un petit tuto pour créer un module simple.

Pour finir parcours le forum tu trouveras sûrement plein d'infos si tu bloques car les souci que tu rencontrera d'autres les ont eu avant toi ;)

bon courage

Pour le moment, j'arrive sur la visualisation de mon node (qui en gros est mon écran de confirmation) à rajouter le form de redirection du paiement via contemplate (merci Nyl Auster) et j'arrive effectivement correctement sur mon site de paiement où je peux faire ce que bon me semble puis qui me redirige sur une page de mon choix de Drupal.

Je pensais donc passer sur une page de validation qui fait un petit workflow du genre :
- test du code de retour de DataTrans
- selon le retour, mail de confirmation et update du status du node pour dire Payment OK

Je vous tiens au courant de mes avancées.

Merci encore

Hello
Pour le changement de status, le module rules peut t'aider (il sert justement à gérer un workflow de façon très souple) si tu as le controle de l'url de retour mais attention à ne pas partir du principe que un paiement est terminé SI le client revient sur le site, ce n'est pas forcément le cas, il peut peut quitter la page. Il vaut mieux compter sur "l'autoresponse ", une requete automatiquement envoyé au moment de l'acceptation du paiement si je me souviens bien.

J'aurai encore besoin de vos lumières.
Comment interpréter le retour ? en gros, s'il fallait faire une page PHP lambda et l'appeler pour afficher un message et envoyer un email, je vois bien comment faire... mais là en Drupal.

En gros, ma gateway va me renvoyer une réponse à une page de mon choix avec en paramètre TOUS les codes pour interpréter le résultat.

Mais vers quelle page Drupal rediriger cela? comment faire une page qui exécute un traitement en background quand elle est appelée pour :
- interpération des codes de retour
- déclencher divers traitements?

Parce que j'avoue ne pas voir comment mettre en oeuvre les rules dans ce cas de figure

Merci par avance

Si tu fais du PHP rules n'est pas indispensable et il vaut mieux passer par la création d'un module. Mais voici ce que peut faire rules : déclencher une action en fonction d'un évènement (l'action et l'évènement pouvant être défini par du code php si besoin).

Par exemple : si l'utilisateur voit la page node/85/retour/35 : envoyer un mail de confirmation et change le statut du node 85 (pour se faire tu dois tout de même charger avec rules le node 85 avec une action qui sert justement à ça).

Bonjour à tous,

Je voulais juste faire un petit retour pour vous remercier tous les 2 pour votre aide et vous dire qu'au final je m'en suis sorti avec un minimum de programmation via les triggered rules en déclenchant les événements sur la visualisation d'une page de contenu qui n'est là que pour interpréter les retours de mon gateway.

Ensuite, nous avons utilisés contemplate pour personnaliser notre affichage de nos nodes.

Par contre, nous cherchions à mettre en forme le template d'édition de nos nodes et alors là nous n'avons pas trouvé.

Nous nous sommes orientés vers PANEL 3 mais devant le peu de documentation et le peu de temps nous avons rebroussé chemin.

Mais par curiosité, est-ce que Panel aurait été le module à retenir pour personnaliser notre formulaire de saisie / édition de nos noeuds?

Encore merci et à bientôt

tout dépend de la mise en forme, mais vous pouvez aussi tout simplement créer un template "page-node-edit.tpl.php". Pour quelque chose de plus poussé au niveau des champs peut être que node forms columns ou panels serait une solution. Enfin écrire une fonction theme pour un formulaire est aussi possible mais il faut écrire un module et demande un peu d'expérience drupal...