PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WEBDEV 2024 → Intégration paiement sécurisé PayPlug
Intégration paiement sécurisé PayPlug
Started by Lucien Debar, Mar., 19 2014 11:06 PM - 12 replies
Posted on March, 19 2014 - 11:06 PM
Bonjour,
Je tente d'intégrer la solution de paiement sécurisé PayPlug sur mon site internet.
Après paiement par l'internaute, PayPlug ne retourne une IPN (Instant Payment Notification) qu'en cas de réussite du paiement; sous la forme d'une requête de type POST sur une url que je fournis dans ma configuration.

Mon site est écrit en WLangage et est hébergé par un serveur Webdev.
Je ne peux donc pas utiliser de script php pour récupérer l'entête et le corps de la requête.
J'ai donc donné l'url d'une page AWP (www.monSite.com/MONSITE_WEB/FR/PAGE_Paiement.awp) pour recevoir l'IPN et le décrypter.
QUESTION: Comment récupérer ces données pour analyser cette IPN?

En gros, je cherche un équivalent WLangage de getallheaders() en php.

Merci d'avance pour vos suggestions.
Bien cordialement,
Lucien
Posted on March, 20 2014 - 10:03 AM
Enfin getallheaders() me permet de récupérer l'entête...
Il me faut aussi récupérer les données fournies par le corps de la requête.
(j'ai la signature dans l'entête et le résultat de la transaction sous la forme d'un objet json dans le corps).

L'objectif est donc bien de tout récupérer dans cette IPN.

Cordialement,
Posted on March, 20 2014 - 1:59 PM
Bonjour,

si c'est comme l'IPN de Paypal, leur serveur envoie une requête HTTP sur la page spécifiée dans votre compte, cette requête se traduit par l'exécution d'un URL paramétrée, il ne reste donc plus qu'à récupérer les paramètres, les analyser et par exemple faire une action serveur : afficher une page de résumé de la transaction, mettre à jour le statut de la commande etc...

Un petit code simple vu et revu sur ce forum dans l'init de votre page AWP
I est un entier=1
gsTemp est une chaîne
gsChaine est une chaîne

gsTemp=PageParamètre(I)
TANTQUE gsTemp<>"" ET gsTemp<>EOT
SI gsChaine<>"" ALORS
gsChaine+="&"
FIN
gsChaine+=gsTemp
I++
gsTemp=PageParamètre(I)
FIN

//gsChaine contient la liste des paramètres et leur valeur


Bon courage
Posted on March, 20 2014 - 3:01 PM
Merci de votre contribution...
Mais... 8)
L'IPN retournée est une requête HTTP de type POST et non GET et il ne s'agit pas d'une url paramètrée (ce serait trop simple en effet de tout récupérer).
J'ai bien essayé une récupération par PageParamètre(paramBuffer), - qui ne récupère de toute façon que le corps et pas l'entête- mais les données transmises ont un type MIME de format JSON ("application/json") et cette fonction ne marche qu'avec des formats "text/xlm" ou "application/octet-stream"

La fonction HTTPDonneRésultat(httpEntête) et HTTPDonneRésultat(httpRésultat) ne semblent fonctionner qu'en réponse à une requête lancée par HTTPRequête et ne permettent visiblement pas de récupérer l'entête ou le corps de la requête si celle-ci émane d'un site tiers.

D'autres suggestions?
C'est tellement simple à récupérer en php... Le Wlangage serait il impuissant face à une problématique si simple?

Besoin d'un coup de main là. Je sèche...
Cordialement.
Posted on March, 24 2014 - 8:44 AM
Bonjour,
Que personne n'ait de solution alternative à proposer montre que je ne suis pas passé à coté de quelque chose...
Il n'est donc pas possible avec cette suite logicielle de répondre efficacement à un besoin aussi rudimentaire que de lire une entête et un corps de requête HTTP.

J'ai fait une demande auprès du support technique gratuit de PCSoft en précisant bien qu'il s'agissait d'une requête POST avec une signature en entête et des données dans le corps dans un type MIME "application/json", le tout crypté bien sûr.
Tout ce qui m'a été proposé est PageParamètre(paramBuffer), ce qui est incongru puisque cette fonction ne prend pas en charge ce type MIME et qu'en outre elle ne retourne que le corps de la requête...

En php (qui est un vrai langage internet) on a getallheaders() pour récupérer l'entête et file_get_contents('php://input').
Rien de plus simple, pas à se torturer les méninges pour trouver un artifice...
PHP, développez 10 fois plus vite !
C'est ce qu'on pourrait penser légitimement face à cette situation...

Bien cordialement,
Lucien
Posted on March, 24 2014 - 12:23 PM
Bonjour Lucien

je n'ai pas essayé, mais la première chose que je ferais dans unc as
comme le tien serait de demander au système, à travers les variables
d'environnement...

Normalement, en mode web serveur, TOUT est dedans (et c'est ce que php
retourne)... Par exemple, tu peux commencer à regarder la:
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzaie/rzaieenvvar.htm

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International
NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 3/24/2014 2:44 AM, Lucien Debar wrote:
Bonjour,
Que personne n'ait de solution alternative à proposer montre que je ne
suis pas passé à coté de quelque chose...
Il n'est donc pas possible avec cette suite logicielle de répondre
efficacement à un besoin aussi rudimentaire que de lire une entête et un
corps de requête HTTP.

J'ai fait une demande auprès du support technique gratuit de PCSoft en
précisant bien qu'il s'agissait d'une requête POST avec une signature en
entête et des données dans le corps dans un type MIME
"application/json", le tout crypté bien sûr.
Tout ce qui m'a été proposé est PageParamètre(paramBuffer), ce qui est
incongru puisque cette fonction ne prend pas en charge ce type MIME et
qu'en outre elle ne retourne que le corps de la requête...

En php (qui est un vrai langage internet) on a getallheaders() pour
récupérer l'entête et file_get_contents('php://input').
Rien de plus simple, pas à se torturer les méninges pour trouver un
artifice... PHP, développez 10 fois plus vite !
C'est ce qu'on pourrait penser légitimement face à cette situation...

Bien cordialement,
Lucien
Posted on March, 26 2015 - 10:19 PM
Bonjour Lucien,

J'ai exactement le même problème que vous. Auriez vous avancé dans la recherche d'une solution ou avez vous abandonné.

Bien cordialement,
Marc
Registered member
36 messages
Popularité : +1 (1 vote)
Posted on March, 11 2016 - 3:13 AM
Bonsoir,

je ne sais pas si vous avez réussi à trouver comment récupérer le contenu envoyé en post sur la page de notification mais personnellement en "attendant" je fais différemment!

en effet comme il est possible de passer une page "success" et une page "echec" à paypalug en plus de la page de notification et bien je me passe de la page de notification pour le moment.

en fait avant de rediriger mon client vers la page de paiement payplug:

j'enregistre en base de données toutes les infos du client et de sa commande
je dispose donc d'un idcommande
au moment d'appeler la page de paiement de payplug je passe en paramètre pour le succès et pour l'echec mon id commande
au retour de payplug à priori si succès du paiement on appelle uniquement la page success donc celle ci récupère le idcommande et va mettre à jour dans ma database le statut de la commande à "ok"
inversement si échec est appelée la page echec récupère le idcommande et va mettre à jour ma base avec un statut à "échouée"

le seul inconvénient est pour les remboursements et les motifs d'échec mais en attendant ça permet de se dépanner.

après il reste possible de jouer avec httprequete pour se connecter sur payplug et parcourir le tableau de la page paiement mais ça devient plus complexe.

bonne soirée
Registered member
36 messages
Popularité : +1 (1 vote)
Posted on March, 11 2016 - 4:01 AM
rectification:

finalement..... sauf erreur de ma part même en cas de refus de la CB ou autre (donc paiement non validé) et bien c'est la page success qui est appelée ...

à creuser....
Registered member
36 messages
Popularité : +1 (1 vote)
Posted on March, 14 2016 - 12:20 PM
Bonjour en fait il fallait pas chercher bien loin... les notifications fonctionnent parfaitement avec une page awp!

il suffit de récupérer le paramètre 1 avec pageparametre(1) et on récupère bien toutes les infos du paiement sous la forme d'un json.

et du coup on fait que que l'on veut pour mettre à jour sa database derrière et envoyer un mail au client par exemple
Registered member
30 messages
Posted on March, 22 2016 - 4:59 PM
Bonjour,
Merci à tous pour ces explications qui m'ont permis de mieux comprendre et d'intégrer une solution de paiement sécurisé (avec la BNP) dans mon site.
J'ai bien utilisé pageparametre(1) pour récupérer les infos retournées par le serveur, mais elles sont inexploitables (sans doute cryptées), et je n'arrive pas à les exploiter.
Quelqu'un a un tuyau là dessus ?
Merci !
Registered member
91 messages
Popularité : +3 (3 votes)
Posted on June, 27 2016 - 5:41 PM
Bonjour Damien,

je suis intéressé pour tester PayPlug sur un site AWP.

Aurais tu un exemple afin de pourvoir le tester.

Merci et bonne journée.

Stéphane
Registered member
6 messages
Posted on June, 18 2021 - 6:56 PM
Bonjour,
Même si ce sujet est ancien, il est d'actualité dans mon projet.
Je suis preneur d'un exemple qui fonctionne.

Merci d'avance