Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-09-2010 10:54:28

gmifsud
Membre
Date d'inscription: 29-04-2010
Messages: 75

Page de retour d'un site de paiement en ligne ?

Bonjour à tous,


Voici la problématique :
- J'ai une page avec un formulaire d'achat en ligne.
- en validant le formulaire, cela lance un script cgi fournit par le prestataire.
- ce script cgi renvoie sur un site de paiement sur lequel on effectue la transaction.
- en validant la transaction sur le site de paiement, celui-ci appelle alors une page de mon application (en mettant les paramètres dans la barre d'adresse).
=> cette page de mon site est censée : créditer le compte local de l'acheteur, et faire un log.

La problématique : faire en sorte que ladite page ne soit pas appelable par l'utilisateur (qu'il ne se crédite pas à l'infini en relançant la page 50 fois !)  smile


J'avais d'abord pensé à une redirection automatique : la page crédite (et logue), puis redirige sur une page de remerciement, mais un petit malin pourrait remarquer l'url ou trouver la page et se créditer lui-même...
Il faudrait vraiment que la page qui crédite ne soit pas accessible à l'utilisateur... tout en étant accessible puisqu'il faut bien que l'action du contrôleur de cette page se lance pour créditer le compte au retour du site de paiement.

Une solution compliquée serait d'inspecter les références de transaction => pas de crédit si la référence existe déjà dans le log... mais si le petit malin pense à la changer, je suis dedans...

Je sèche complètement !  sad

J'espère que vous aurez un conseil à me donner.


Merci d'avance.

Hors ligne

 

#2 23-09-2010 16:32:59

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Page de retour d'un site de paiement en ligne ?

Salut, si c'est comme ce que j,ai connus il y a quelques années avec une banque française, le CGI de la banque a une double fonction :
- créer les informations codés nécessaire au fonctionnement normal du site de paiement de la banque
- décoder et vérifier les réponses codés envoyé par le serveur de la banque

En plus de ça, le serveur de la banque appelle une page internet du site qui n'est pas connus du visiteur (c'est le serveur de la banque qui appelle celui du commerçant pas le navigateur du visiteur). Ensuite si le serveur du commerçant répond par le code "tout va bien", il renvoie au visiteur une redirection ou une page de confirmation avec lien vers le site du commerçant.

Dans ton cas, il y a deux trucs qui me choquent mais peut être par ce que tu corresponds à un cas particulier :
- pourquoi acceptes tu n'importes quel code non utilisé? Ne vaut il pas mieux créer des codes de commandes et vérifier ce code au moment du paiement?
- pourquoi le visiteur tombe sur la page qui sert à la validation du paiement par l'organisme bancaire? Tout bon système de paiement permet d'indiquer une page de validation de paiement (utilisé par le serveur de paiement) et une page de retour (utilisé par le navigateur)

Si tu veux qu'on te donne plus de détail, il faudrait que tu nous indiques le système de paiement qui a été choisit (paypal, telle ou telle banque, etc) et s'ils en ont plusieurs quelle librairie est utilisé (paypal proposes trois système de paiement de mémoire)

Hors ligne

 

#3 24-09-2010 09:43:36

gmifsud
Membre
Date d'inscription: 29-04-2010
Messages: 75

Re: Page de retour d'un site de paiement en ligne ?

Merci pour ton intérêt.

En fait, il s'agit de Paybox : http://www1.paybox.com/default.aspx

Pour le moment, je me sers juste de leur site de paiment en exemple qui permet de tester toute la chaîne, mais sans débiter la carte bleue.

Voici comment il fonctionne :
- un script cgi fourni par Paybox qui appelle une url de paybox où l'on entre son n° de CB.
- On stocke quelque part trois url de retour :
   * l'url de notre site sur laquelle l'acheteur sera renvoyé en cas de réussite du paiement.
   * l'url de retour en cas d'annulation du paiement par l'acheteur sur le site de paybox.
   * l'url de problème en cas de refus de la banque de débiter la CB.


Voici comment fonctionne ma solution actuelle :
- L'utilisateur choisit la somme à débiter sur mon site => un formulaire tout simple qui appelle un formulaire de confirmation.
- La page de confirmation sur mon site : propose un formulaire avec des submit hidden contenant tous les paramètres nécessaires au scripg cgi et un bouton submit de confirmation qui appelle ce srcipt cgi pour envoyer sur le site de paiement.
- l'utilisateur se retrouve sur le site de paiement de paybox : qui lui rappelle la somme à débiter, lui propose un moyen de paiement, d'entrer son n° de CB, puis de valider son choix.

Prenons le cas simple d'un paiement réussi :
le site de paiement paybox fait sa sauce avec la banque, affiche une page de confirmation classique avec la somme débitée, le n° de transaction, etc..., et un bouton de retour vers mon site.

Et c'est là que se posent DEUX problèmes :
- le premier : si l'utilisateur ne clique pas sur ce bouton de retour vers mon site, il est débité sur son compte banquaire, MAIS il ne revient pas sur mon site, et son achat n'est donc pas validé !

- le second : si l'utilisateur revient sur mon site => comment savoir qu'il est bien revenu de chez paybox quand il arrive sur la page de retour, et que l'achat a bien eu lieu !?


Voilà. J'espère avoir été assez clair ; c'est la première fois que j'utilise un outil de ce genre, et je me heurte à des problèmes de sécurités inédits pour moi.

Dernière modification par gmifsud (24-09-2010 09:45:23)

Hors ligne

 

#4 24-09-2010 19:44:13

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Page de retour d'un site de paiement en ligne ?

Je viens d'aller voir sur leur site et tels qu'il décrivent les étapes et tels que tu les décris toi, ça donne une impression bizarre.
En résumé, soit tu bases la vérification sur la réception des emails envoyé par paybox, soit tu espères que les internautes sont honnêtes. Autant ça me parait valable pour un petit commerçant qui n'envoie pas les produits avant plusieurs jours autant ça ne me parait pas utilisable en l'état pour une entreprise qui fournis immédiatement un produit ou un service : cette dernière n'a pas le temps d'attendre des mails qui peuvent mettre parfois jusqu'à 48h.

Après quelques minutes de recherches supplémentaires, j'ai vu qu'on doit donner au CGI une chaine contenant les paramètres de retour (sauf erreur de compréhension de ma part) Peut être que tu peux rajouter en plus un paramètre de contrôle qui te permettra de vérifier si c'est paybox qui redirige l'internaute.

Hors ligne

 

#5 28-09-2010 13:44:53

gmifsud
Membre
Date d'inscription: 29-04-2010
Messages: 75

Re: Page de retour d'un site de paiement en ligne ?

J'avoue que je ne sais pas trop comment faire.
Le problème du paramètre de retour, c'est qu'il est très certainement passé par l'url => le petit malin peut le récupérer !

J'ai carrément lancé une question sur le formulaire de demande d'info de paybox. Mais je n'ai pas eu de réponse encore.

Je vais chercher un petit peu. Peut-être que c'est tout simple (genre des paramètres en post que je n'ai pas vu).
Je vais relire la doc aussi, au cas où.

Hors ligne

 

#6 01-10-2010 15:27:18

gmifsud
Membre
Date d'inscription: 29-04-2010
Messages: 75

Re: Page de retour d'un site de paiement en ligne ?

D'après Paybox, il existe un moyen avec clé privée/publique pour permettre à leur site d'échanger l'info avec le mien.

Je vais tester ça et vous tenir au courant.  smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages