Retour des paiements [Divers
]
De Stan
Comment envoyer et revenir sur un site webdev après un paiement sécurisé (poste Suisse), mais cela va sûrement avec d'autre.
Le principe est le suivant :
appelez la page de paiement dans une iframe avec les paramètres fournis par le provider
Donner au provider la page de retour avec les paramètres que vous voulez, par ex: paiement ok ou pas, numéro de client.
redirigez depuis la page de retour (page awp) sur un "index.htm" avec paramètres et à l'aide de javascript ouvrir le site en repassant les paramètres.
Mise en place :
1 page index.htm avec dans l'onglet avancé le code suivant :
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
var frameok;
function myFunc() {
parent.frames[0].document.location.href=frameok;
}
var codeinst=window.location.search.substring(1);
if (codeinst!=""){
frameok="http://votreip/WD110AWP/WD110Awp.exe/CONNECT/votresite?"+codeinst;
}else{
frameok=http://votreip/WD110AWP/WD110Awp.exe/CONNECT/votresite;
}
</script>
</head>
<FRAMESET rows="100%,*" frameborder=no border=0 onload="myFunc()">
<FRAME SRC="">
<FRAME SRC="" scrolling="No" noresize>
</FRAMESET>
</html>
1 page paiement avec un iframe, un lien caché et le code suivant :
pour l'initialisation de la page (l' URL fourni par le provider) :
assignez dynamiquement le paiement au lien caché
LIEN_
txtOrderTotal = le total de la commande
txtArtCurrency = la monnaie en cours
txtLangueVersion = la langue
txtHash = la clé de votre shop
txtHistoryback = interdit l'historyback sur la page appellée
txtIDOrderShop = variable facltative que j'utilise pour fournir le numéro de client
Dans le chargement(onload)
ExécuteTraitement(LIEN_Lien1,trtClic)
la page de la poste s'ouvre. Le traitement se fait et renvoie le résultat à la page PAGE_RetourPaiement.awp (dans le iframe)
Déclaration globale :
PROCEDURE
Paiement1
numclient1
schainegeneree
PAGE_RetourPaiement(Paiement=PageParamètre("Paiement"),numclient=PageParamètre("txtOrderIDShop")) est une chaîne=Paiement est une chaîne=numclient est une chaîne
dans l'initialisation de la page :
InitHasard
/crée une chaîne aléatoire sur 12 caractères pour cacher le retour ds variables
nNombre est un entieri est un entieri=1 A 12nNombre = Hasard(48,57)schainegeneree+=Caract(nNombre)numclient1="" ALORSnumclient1="1BBB"FIN
POUR
FIN
//si le numéro de client n'est pas retourné
SI
//Atribution d'un code selon le retour de la variable depuis le shop (ceci est un exemple, vous mettez ce que vous voulez).SELON Paiement1CAS "ok"Paiement1="1111"CAS "nok"Paiement1="2222"AUTRE CASPaiement1="3333"FIN
//création de la clé aléatoire avec le résultat du paiement en 1 et le numéro de client en 3schainegeneree=Crypt(Paiement1+schainegeneree+numclient1,"votrecléperso")
Au chargement de éa page (onload) :
ExécuteTraitement
(BTN_Bouton1,trtClic)
Créer un bouton caché avec ce code :
dans le WL Clic(onclick):
PageAffiche
("index.htm?votrevariable="+schainegeneree,NavigateurEnCours)
le index.htm (voir plus haut) va récupérer la variable et la renvoyer au site en redémarant une séssion.
dans la première page du site ( déclaration globale)
PROCEDURE
dans l'initialisation de la page :
SI
//retrouve le numéro de clientsNumcli = Droite(gPairesult,Taille(gPairesult)-16)nSnumcli1 est un entierSI sNumcli="0AAA" ALORSPageAffiche(PAGE_PaiementPasOK)nSnumcli1=sNumcli
SINON
//récupère le résultat du paiementSELON Gauche(gPairesult,4)"2222"PageAffiche(PAGE_PaiementPasOK,nSnumcli1)"1111"PageAffiche(PAGE_PaiementOK,nSnumcli1)PageAffiche(PAGE_PaiementPasOK)
Dans les pages paiementok et pasok, fait ce que vous voulez...
CAS
CAS
AUTRE CAS
FIN
FIN
FIN
gPairesult<>"" ALORSgPairesult=Décrypte(gPairesult,"votrecléperso")sNumcli est une chaîneouvrepage(gPairesult=PageParamètre("votrevariable"))
()Lien1..URL="https://yellowpaytest.postfinance.ch/checkout/Yellowpay.aspx?txtShopId=votreshop_yp&txtOrderTotal="+xGtotal+"&txtArtCurrency=CHF&txtLangVersion=4108&txtHash=96c9a5b399e95a898684d1baaf9ab3d6&txtHistoryBack=false&txtOrderIDShop=3"txtShopId=l'id de votre shop