8719 sujets

Développement web côté serveur, CMS

Bonjour,

Mon problème concerne l'envoi de variables vers un serveur bancaire pour l'encaissement des CB.

Dans un formulaire, le client choisit un type de carte, ou une carte pré-enregistrée.
Si nouvelle carte il peut choisir de la garder en mémoire.
Si carte pré-enregistrée il peut décider de la mettre à jour.

Ces différents choix correspondent à différentes valeurs pour la même variable : type_de_paiement.

Tout cela me semble impossible à gérer dans un seul formulaire sans du javascript dont je ne veux pas pour des raisons de sécurité.
Ce serait facile avec plusieurs form mais il faut alors autant de boutons submit et ce n'est pas joli.
Ce serait pratique de pouvoir associer plusieurs couples nom/valeur à un même bouton type checkbox ou radio mais à ma connaissance c'est impossible;

form action="https//site_paiement_externe/"
est donc impossible.

form action="mon_site.php"
La fonction de mon_site.php est de préparer les variables $_Post en fonction des choix du client et de les renvoyer en $_Post vers https//site_paiement_externe/

Je ne vois pas quelle fonction PHP employer pour ce faire.
Pour que ton site puisse envoyer des valeurs de variables vers un site de paiement, tu peux utiliser la fonction curl() de PHP.

Maintenant comme il s'agit d'argent, je suis très réservé sur ce type de pratique.
En général, on redirige le client vers un site de paiement avec un numéro de panier , un montant à payer et une date de validité.
Et quand le site de paiement te dit que le panier est payé, tu l'envoies à ton client.

Perso, je ne donne pas mes n° de CB à n'importe qui. Si je ne connais pas le site de paiement, basta !
Modifié par bazooka07 (26 Dec 2018 - 16:30)
Bonjour,

Merci de ta réponse.

En effet j'ai découvert curl() de PHP.
J'ignore si cela peut poser des problèmes de sécurité et je ne sais pas si c'est accepté par le serveur de paiement, en l’occurrence SystempPay chez Natexis. Je vais leur demander.

Pour l’instant je vais continuer à employer un système à deux clics.
1) Le client choisit un type de carte, ou une carte pré-enregistrée.
Si nouvelle carte il peut choisir de la garder en mémoire.
Si carte pré-enregistrée avec date dépassée il peut décider de payer avec mise à jour .

2) Un script PHP simple prépare toutes les variables à envoyer au serveur de paiement selon les choix du client.
Suit une page de confirmation avec toutes les données $_POST en hidden.

Cela marche sans souci depuis des années.
Bonjour,

Merci pour tes liens.

J'ai un code PHP qui fonctionne depuis des années et je sais ce qu'il y a dedans.

La seule nouveauté est que je vais laisser au client la possibilité de laisser sa carte en mémoire.

Le truc à l'origine de la discussion est que je dois faire un système en deux clics car le serveur bancaire ne sait pas interpréter les choix du client chez toi. Sauf à utiliser curl () car alors ton script prépare les données et ensuite communique avec le serveur bancaire.

Je ne suis peut-être pas très clair.
Bonjour,

blackiyto a écrit :
Je ne vois pas quelle fonction PHP employer pour ce faire.


cURL () sans doute.
J'ai demandé à SystemPay s'ils acceptent une connexion par cURL ().
Bonjour GrantWilson,

Merci pour ce lien qui approfondit sérieusement le sujet.

En ce qui concerne mon système de paiement, pour les clients qui ont une carte pré-enregistrée je suis resté sur le système à deux clics.

Il choisit sa carte enregistrée comme moyen de paiement. CLIC

Il confirme le paiement pour telle somme. CLIC

Paiement accepté ou refusé par le serveur Natexis.

Cela me permet d'envoyer mes variables via un formulaire POST bien classique, le prix est de demander un deuxième clic.