PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Soucis paiement sécurisé !
Soucis paiement sécurisé !
Débuté par Olivier, 01 avr. 2016 17:10 - 18 réponses
Posté le 01 avril 2016 - 17:10
Bonjour,

J'ai un soucis que je traine depuis pas mal de temps, malgré des dizaines d'essais (et des mails au support), je n'arrive pas à résoudre mon problème !

J'utilise le composant WW_PaiementSecurise sur un site avec des pages dynamiques.
Au moment du règlement, j'initialise les paramètres du composant (en fait j'ai repris l'exemple fournis avec le composant) :


...
clPaiement:PageRetourBoutique = "http://" + sDomaine + ["/"] + RépertoireWeb() + "/FR/pageretourpaiementecommerce" + ".awp"
clPaiement:PageRetourServeurÀServeur = "http://" + sDomaine + ["/"] + RépertoireWeb() + "/FR/nomdepagepersonnalisepourlesretours2s" + ".awp"
clPaiement:SurAppelServeur = PageAdresse("",paCOMPLETE)[[A PositionOccurrence(PageAdresse("",paCOMPLETE),"/",3)]] +RépertoireWeb()+["/"]+"FR/confirmationpaiement.awp"
// LIEN_Retour_Serveur_a_Serveur..nomcomplet
clPaiement:SurAbandonPaiement = LIEN_Retour_à_la_boutique..NomComplet
clPaiement:SurRefusPaiement = LIEN_Retour_à_la_boutique..NomComplet
clPaiement:SurValidationPaiement = LIEN_Retour_à_la_boutique..NomComplet

SI paiement(clPaiement, Arrondi(gStPanier.moPrixTotalTTC,2), gsEmailCompte) = Faux ALORS
Erreur(clPaiement.ErreurInfo)
RENVOYER Faux
FIN
...



Voilà mon problème, mon site bascule bien sur la banque, après validation de la carte bancaire et après avoir cliqué sur "revenir à la boutique", je reviens bien sur mon site, pas de soucis jusque là.

Le problème est que je n'ai pas le retour "serveur à serveur" si le client ferme l'écran après avoir saisi son numéro sans faire "retour à la boutique", je ne vois pas le règlement.

Dans l'exemple du composant, ils initialisent le retour que la banque doit lancer :
clPaiement:SurAppelServeur


- avec un lien sur la page en cours (j'ai essayé sans succès)
- avec un page AWP (j'ai essayé sans succès non plus).

On dirait que je ne reçois pas le retour de la banque sur le serveur.

J'ai laissé avec une page AWP cela me semble plus sur, mais elle n'est jamais lancée par la banque, pourtant la page se trouve au bon endroit, elle est accessible (je peux la lancer manuellement).

J'ai jeté un œil sur le parefeu du serveur je n'ai rien vu de spécial, ni sur IIS.

Les fichiers response.exe et request.exe sont accessibles et les droits d'accès sont corrects (déjà vu que le site de la banque se lance normalement, le request.exe est bien trouvé)

Quelqu'un à une idée ???? je craque !!!!!!!!!!!!

MERCI POUR VOTRE AIDE.

Olivier
Posté le 01 avril 2016 - 17:22
Bonjour Olivier,

comment sais tu que la page awp n'est jamais lancée ? As tu mis un log
en place ?

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


On 4/1/2016 9:10 AM, Olivier wrote:
Bonjour,

J'ai un soucis que je traine depuis pas mal de temps, malgré des
dizaines d'essais (et des mails au support), je n'arrive pas à résoudre
mon problème !

J'utilise le composant WW_PaiementSecurise sur un site avec des pages
dynamiques.
Au moment du règlement, j'initialise les paramètres du composant (en
fait j'ai repris l'exemple fournis avec le composant) :


....
clPaiement:PageRetourBoutique = "http://" + sDomaine + ["/"] +
RépertoireWeb() + "/FR/pageretourpaiementecommerce" + ".awp"
clPaiement:PageRetourServeurÀServeur = "http://" + sDomaine + ["/"] +
RépertoireWeb() + "/FR/nomdepagepersonnalisepourlesretours2s" + ".awp"
clPaiement:SurAppelServeur = PageAdresse("",paCOMPLETE)[[A
PositionOccurrence(PageAdresse("",paCOMPLETE),"/",3)]]
+RépertoireWeb()+["/"]+"FR/confirmationpaiement.awp" //
LIEN_Retour_Serveur_a_Serveur..nomcomplet
clPaiement:SurAbandonPaiement = LIEN_Retour_à_la_boutique..NomComplet
clPaiement:SurRefusPaiement = LIEN_Retour_à_la_boutique..NomComplet
clPaiement:SurValidationPaiement = LIEN_Retour_à_la_boutique..NomComplet

SI paiement(clPaiement, Arrondi(gStPanier.moPrixTotalTTC,2),
gsEmailCompte) = Faux ALORS
Erreur(clPaiement.ErreurInfo)
RENVOYER Faux
FIN
...



Voilà mon problème, mon site bascule bien sur la banque, après
validation de la carte bancaire et après avoir cliqué sur "revenir à la
boutique", je reviens bien sur mon site, pas de soucis jusque là.

Le problème est que je n'ai pas le retour "serveur à serveur" si le
client ferme l'écran après avoir saisi son numéro sans faire "retour à
la boutique", je ne vois pas le règlement.

Dans l'exemple du composant, ils initialisent le retour que la banque
doit lancer :
clPaiement:SurAppelServeur


- avec un lien sur la page en cours (j'ai essayé sans succès)
- avec un page AWP (j'ai essayé sans succès non plus).

On dirait que je ne reçois pas le retour de la banque sur le serveur.

J'ai laissé avec une page AWP cela me semble plus sur, mais elle n'est
jamais lancée par la banque, pourtant la page se trouve au bon endroit,
elle est accessible (je peux la lancer manuellement).

J'ai jeté un œil sur le parefeu du serveur je n'ai rien vu de spécial,
ni sur IIS.

Les fichiers response.exe et request.exe sont accessibles et les droits
d'accès sont corrects (déjà vu que le site de la banque se lance
normalement, le request.exe est bien trouvé)

Quelqu'un à une idée ???? je craque !!!!!!!!!!!!

MERCI POUR VOTRE AIDE.

Olivier
Posté le 04 avril 2016 - 08:27
Bonjour Fabrice et merci pour ta réponse.

Oui j'ai mis des logs :
- dans la fenêtre AWP qui enregistre le règlement (c'est cette page qui doit être lancé par la banque),
- j'ai mis des logs dans les 2 fenêtres AWP (avec le champs interne PI_PayBack du composant, comme sur l'exemple fournis).

Et donc, en finalité :
- j'ai toujours le log de la page interne qui traite le retour "serveur à poste client",
- je n'ai jamais les logs de la page interne "serveur à serveur", ni le log de la page AWP qui enregistre le règlement.

Tu utilises le composant toi ? tu n'as pas eu de soucis ?

Merci énormément pour les renseignements que tu pourrais me donner, car malgré des tas de tests et de messages au support, je n'avance pas du tout.

Merci encore
Olivier
Membre enregistré
38 messages
Popularité : +3 (3 votes)
Posté le 04 avril 2016 - 13:33
Bonjour,

Attention avec certaines banques la configuration de la page de retour S2S ne peux être fait que par la banque elle même, il faut leur communiquer l'url pour qu'il la paramètre.



Aurélien
Posté le 04 avril 2016 - 15:08
Bonjour Aurélien,
Merci ! çà, je ne savais pas !!!!
Je vais me renseigner de suite auprès du Crédit Agricole.
Merci encore.
Cordialement
Olivier
Posté le 04 avril 2016 - 16:55
Bonjour Olivier

attention, certains code de log peuvent ne pas fonctionner en awp même
si ils fonctionnent dans une page classique. En particulier, le
répertoire courant n'est pas le même...

Et non, je n'utilise pas le composant en question qui est trop limité
pour mes bsoins, je fais des payement par paypal, mais ca fonctionne de
la même manière.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


On 4/4/2016 12:27 AM, Olivier wrote:
Bonjour Fabrice et merci pour ta réponse.

Oui j'ai mis des logs :
- dans la fenêtre AWP qui enregistre le règlement (c'est cette page qui
doit être lancé par la banque),
- j'ai mis des logs dans les 2 fenêtres AWP (avec le champs interne
PI_PayBack du composant, comme sur l'exemple fournis).

Et donc, en finalité :
- j'ai toujours le log de la page interne qui traite le retour "serveur
à poste client",
- je n'ai jamais les logs de la page interne "serveur à serveur", ni le
log de la page AWP qui enregistre le règlement.

Tu utilises le composant toi ? tu n'as pas eu de soucis ?

Merci énormément pour les renseignements que tu pourrais me donner, car
malgré des tas de tests et de messages au support, je n'avance pas du tout.

Merci encore
Olivier
Posté le 04 avril 2016 - 17:30
Bonjour Fabrice,
C'est un log qui je gère moi même, il fonctionne correctement.

Pour Aurélien...
Par contre, le fichier parmcom.<numero_certificat> est le fichier par défaut, il ne contient pas le nom des pages :
AUTO_RESPONSE_URL
CANCEL_URL
RETURN_URL

Le composant passe le nom des pages dans la ligne de commande.

Je ne pense pas qu'il faille envoyer le nom de la page de retour S2S à la banque, c'est le Crédit Agricole, système ATOS comme le BNP, et pour la BNP il ne faut pas envoyer le nom de la page.

Merci pour vos idées.
Cordialement
Olivier
Posté le 05 avril 2016 - 10:20
Bonjour,
A priori, il n'y a pas foule qui utilise le composant WW_PaiementSécurisé !
Malheureusement, je n'avance plus sur ce problème, je n'ai plus d'idées !
Cordialement
Olivier
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 05 avril 2016 - 12:27
Bonjour Olivier,

Je te conseille déjà de mettre tes URL en clair avec le nom de ton domaine : "http://tondomaine....... awp"

Que passes tu en paramètre à tes pages AWP car je ne vois rien dans ton code exemple ...awp?P1=paramètre
Appeler une page AWP ne sert à rien si tu ne passes aucun paramètre à ta page...

--
Cordialement
François

http://intra.fr
http://intrasoftware.fr : Guide d'installation de Webdev sur Windows 2012 Server
Webservice d'aide pour gérer l'international
Posté le 05 avril 2016 - 15:28
Merci François pour ta réponse...

Je passe l'emplacement précis des pages :
clPaiement:PageRetourBoutique = "http://" + sDomaine + ["/"] + RépertoireWeb() + "/FR/pageretourpaiementecommerce" + ".awp"
clPaiement:PageRetourServeurÀServeur = "http://" + sDomaine + ["/"] + RépertoireWeb() + "/FR/nomdepagepersonnalisepourlesretours2s" + ".awp"


De ce côté là, il n'y a pas de soucis, les pages sont accessibles, je peux les appeler en tapant l'adresse dans la barre du navigateur.
Je renseigne les paramètres, et le composant WW_PaiementSécurisé, génère la ligne de commande, de ce côté là, je n'ai pas de soucis non plus, mon site bascule bien sur la banque Crédit Agricole, on peux saisir le numéro de carte, etc... c'est lors de la validation que le retour S2S ne se fait pas comme je l'explique dans mon 1er message de ce post.

Merci
Cordialement
Olivier
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 05 avril 2016 - 15:52
Oui Olivier,

J'ai bien compris.
Pour les URL je t'ai conseillé l'URL en clair comme : http://domaine.fr/FR/pageretourpaiementecommerce.awp

Mais ensuite dans les URL de retour, c'est à toi de créer ces pages AWP, d'en récupérer les paramètres dans le code d'ini de la page pour les exploiter.
C'est indépendant de ta solution de paiement.

Par contre il faut construire une URL différente lors de chaque paiement avec un ou des paramètres. Aucun solution de paiement ne peut l'inventer.

Exemple : un client de code 125 paie 1258€
Comment tu passes cela à ta page AWP http://domaine.fr/FR/pageretourpaiementecommerce.awp ?
Comment ensuite tu détectes cela dans le code de ta page AWP ?

--
Cordialement
François

http://intra.fr
http://intrasoftware.fr : Guide d'installation de Webdev sur Windows 2012 Server
Webservice d'aide pour gérer l'international
Posté le 05 avril 2016 - 16:02
Re-bonjour François,

L'emplacement des pages est corrects dans le fichier Transaction.FIC que le composant génère, il historise les emplacements et c'est ok.

La ligne de commande avec l'URL etc... est générée par le composant au moment où tu lances la fonction "paiement(...)" mais là çà fonctionne bien, çà bascule sur le Crédit Agricole avec le bon montant à régler, etc... c'est l'AUTO_RESPONSE_URL qui ne se fait pas, alors que j'ai bien renseigné la page de retour S2S (le retour sur la boutique lui se fait correctement).

Merci
Cordialement
Olivier
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 05 avril 2016 - 17:08
Rebonjour Olivier,

Je suis peut-être dépassé par les performances du composant mais à ma connaissance ce n'est pas lui qui va créer et codifier tes pages AWP, mais sait-on jamais !

Quel est par exemple ton code d'ini de la page AWP pageretourpaiementecommerce.awp ?

--
Cordialement
François

http://intra.fr
http://intrasoftware.fr : Guide d'installation de Webdev sur Windows 2012 Server
Webservice d'aide pour gérer l'international
Posté le 05 avril 2016 - 17:18
Re-Re-bonjour François,

Si si je te confirme c'est bien le composant qui génère l'URL avec les paramètres qui tu as renseigné précédemment.

Voici le code complet :

...
clPaiement est un PaiementSécurisé(nType_banque)
clPaiement:CodeSociété = sCodeSociete
clPaiement:Contrat = sContrat
clPaiement:Simulation = Faux
clPaiement:NuméroCommande = DateSys() + HeureSys()
clPaiement:PathFile = sRepFichiers
clPaiement:IgnoreTestPageRetour = Faux
clPaiement:Langue = "FR"

clPaiement:PageRetourBoutique = PageAdresse(pageretourpaiementecommerce,paCOMPLETE)
clPaiement:PageRetourServeurÀServeur = PageAdresse(nomdepagepersonnalisepourlesretours2s, paCOMPLETE)
clPaiement:SurAppelServeur = PageAdresse(confirmationpaiement, paCOMPLETE)
clPaiement:SurAbandonPaiement = LIEN_Retour_à_la_boutique..NomComplet
clPaiement:SurRefusPaiement = LIEN_Retour_à_la_boutique..NomComplet
clPaiement:SurValidationPaiement = LIEN_Retour_à_la_boutique..NomComplet

SI paiement(clPaiement, Arrondi(gStPanier.moPrixTotalTTC,2), gsEmailCompte) = Faux ALORS
Erreur(clPaiement.ErreurInfo)
RENVOYER Faux
FIN
...


Donc le retour serveur à boutique fonctionne bien (clPaiement:PageRetourBoutique) par contre le retour serveur à serveur ne marche pas (clPaiement:PageRetourServeurÀServeur). L'emplacement des pages sont les mêmes.

La page 'nomdepagepersonnalisepourlesretours2s' n'est pas lancé (j'ai mis une trace dedans) par contre la page 'pageretourpaiementecommerce' est lancé.

Merci
Cordialement
Olivier
Membre enregistré
188 messages
Popularité : +1 (5 votes)
Posté le 22 avril 2016 - 16:53
Bonjour,
Suite à mes messages précédents concernant mon soucis avec le composant WW_PaiementSecurisé....

Le composant WW_PaiementSécurisé fonctionne correctement (j'ai utilisé celui de la version 21) !

Voilà quelques remarques importantes :
- sur SurAppelServeur : il faut utiliser une page AWP, un lien comme sur l'exemple PCSOFT ne fonctionne pas toujours correctement,
- attention à la configuration du serveur webdev si votre site est avec des pages DYNAMIQUES et pas AWP,
- la page "SurAppelServeur" est lancé par la banque après avoir renseigné le numéro de carte (valide ou pas), la page N'EST PAS LANCÉE sur la bouton "Annulé le règlement".

Voilà
Cordialement

--
---
Olivier
www.xenon33.fr
contact@xenon33.fr
Posté le 22 avril 2016 - 17:06
Bonjour,

j'ai mis beaucoup de temps a faire le retour auto avec les paiement ATOS. mais maintenant cela fonctionne.
Ci-dessous le code que j'ai utilisé, si cela peut aider.
//----------------------------------------------------------------------------------------------------------------
//--------------Gestion du retour à la boutique
//----------------------------------------------------------------------------------------------------------------
//- A ----- Pages AWP pour le fonctionnement interne du composant
// il faut dans un premier temps indiquer le nom de pages AWP contenant la page interne PI_PAYBACK du composant
// ! Mais attention votre traitement de gestion de retour lui n'est pas dans ces pages !
//pour le retour à la boutique
MonPaiement:PageRetourBoutique="retourpaiementAtos"
//pour la gestion des retour de serveur à serveur
//! Nom à personnaliser pour plus de sécurité : pour ne pas avoir le même nom que tous les développeurs WEBDEV !
MonPaiement:PageRetourServeurÀServeur="RetourBanque_Serveur_Atos"
//Notes :
// - il doit s'agir d'une page AWP du projet contenant la page interne "PI_Payback" (Il ne faut pas cocher "Pages AWP autonomes" dans le projet)
// - mettez l'option "ne pas référencée cette page" dans le détails de ces pages
// - vous n'avez aucun traitement en dehors de la page interne "PI_Payback" à mettre dans cette page. Vos traitements personnalisés sont dans SurAbandonPaiement, SurRefusPaiement, SurValidationPaiement et SurAppelServeur
// - Afin d'avoir plus de sécurité, il est conseillé de mettre un nom de page personnalisé pour la page de gestion des retour de serveur à serveur

// Ensuite cette page appellera un traitement propre à votre site

//- B ----- Indiquez le ou les lien(s) ou bouton(s) qui sera/seront exécutés lors du retour à la boutique
//Vous pouvez également indiquer le lien HTTP vers une page AWP du projet
//Dans le cas d'un paiement abandonné
MonPaiement:SurAbandonPaiement = LIEN_Retour_à_la_boutique..NomComplet
//Dans le cas d'un paiement refusé
MonPaiement:SurRefusPaiement = LIEN_Retour_à_la_boutique..NomComplet
//Dans le cas d'un paiement validé
MonPaiement:SurValidationPaiement = LIEN_Retour_à_la_boutique..NomComplet
//Dans cet exemple on donne toujours le même lien, et on fait un SELON dans son code


//- C ----- Indiquez le ou les lien(s) ou bouton(s) qui sera exécutés lors du retour d'information de serveur à serveur
// Ce retour est géré automatiquement et met à jour la transaction dans la base de données des paiements
// Il est possible (et même conseillé) d'indiquer un traitement spécifique :
MonPaiement:SurAppelServeur = LIEN_Retour_Serveur_a_Serveur..NomComplet
//ou avec une page AWP pour la gestion du retour on pourrait faire :
//MonPaiement:SurAppelServeur = PageAdresse("",paCOMPLETE)[[A PositionOccurrence(PageAdresse("",paCOMPLETE),"/",3)]] +RépertoireWeb()+["/"]+"FR/PAGE_RETOUR.awp"
Membre enregistré
188 messages
Popularité : +1 (5 votes)
Posté le 22 avril 2016 - 22:47
Bonjour,
Oui tu as repris l'exemple de PCSOFT fait attention, tu utilises :
MonPaiement:SurAppelServeur avec un lien sur la page, j'ai eu le cas où cela ne fonctionné pas toujours, je te conseille plutot une page AWP.
Cordialement

--
---
Olivier
www.xenon33.fr
contact@xenon33.fr
Posté le 30 novembre 2016 - 15:14
Bonjour ,

... si cela peut aider
Deploiement : LINUX / Serveur Https
Symptome : la page de RetourServeuraServeur.awp ne répondait rien à l'initialisation du module de paiement sous Linux.
(Le composant teste la page et attend qu'elle lui retourne OK)

Elle était initialisée :
MonPaiement:PageRetourServeuraServeur="RETOUR_SERVEUR"
(Le composant complété l'adresse : ["MonDomaine/FR/"]+RETOUR_SERVEUR+[".apw"] et teste la page)

Pour que cela fonctionne, il a fallu dans mon cas initialiser avec l'Url complète :
MonPaiement:PageRetourServeuraServeur="MonDomaine/FR/RETOUR_SERVEUR.apw"
Posté le 11 octobre 2017 - 20:55
Bonjour,
pouvez-vous me dire si le fichier de Transaction reste un fichier HyperFile local ou s'il dépend du type de connexion réalisée dans mon projet. Pour mon cas, c'est une connexion ODBC AS400
Si c'est un fichier hyperfile, je ne pense pas qu'il y aura de problème de sécurité contrairement à un fichier à créer sur l'AS400...

Merci