MEthode http post php + token
Fermé
gbrylk
Messages postés
3
Date d'inscription
lundi 27 mai 2013
Statut
Membre
Dernière intervention
27 mai 2013
-
Modifié par irongege le 27/05/2013 à 16:52
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 28 mai 2013 à 10:50
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 28 mai 2013 à 10:50
A voir également:
- MEthode http post php + token
- Protocole http - Guide
- Http error 413 zimbra - Forum autres boîtes mail
- Easy php - Télécharger - Divers Web & Internet
- Http //192.168.l.49.1 anycast setup - Forum WiFi
- Http //cast2tv.net/ - Forum TV & Vidéo
3 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 27/05/2013 à 11:36
Modifié par [Dal] le 27/05/2013 à 11:36
Salut gbrylk,
La documentation de la plateforme de paiement doit t'indiquer comment se présente le "token", comment il est transmis, et comment l'utiliser. Après avoir validé le paiement, le site de la plateforme va rediriger le visiteur sur la page que tu as indiquée comme étant la page de retour notamment en cas de succès du paiement.
C'est souvent un paramètre glissé dans l'URL, exploitable selon les indications de la plateforme.
Dans ce cas, tu le récupère avec $_GET sur la page d'arrivée, par exemple en supposant que la plateforme te le renvoie sous le nom "token" :
https://www.php.net/manual/fr/reserved.variables.get.php
Dal
La documentation de la plateforme de paiement doit t'indiquer comment se présente le "token", comment il est transmis, et comment l'utiliser. Après avoir validé le paiement, le site de la plateforme va rediriger le visiteur sur la page que tu as indiquée comme étant la page de retour notamment en cas de succès du paiement.
C'est souvent un paramètre glissé dans l'URL, exploitable selon les indications de la plateforme.
Dans ce cas, tu le récupère avec $_GET sur la page d'arrivée, par exemple en supposant que la plateforme te le renvoie sous le nom "token" :
if (isset($_GET["token"])) { // faire quelque chose avec $_GET["token"] }
https://www.php.net/manual/fr/reserved.variables.get.php
Dal
gbrylk
Messages postés
3
Date d'inscription
lundi 27 mai 2013
Statut
Membre
Dernière intervention
27 mai 2013
Modifié par gbrylk le 27/05/2013 à 21:19
Modifié par gbrylk le 27/05/2013 à 21:19
Merci pour ta réponse mais DAL mais elle ne me sort pas encore de mon impasse ! Lorsque je clique sur le bouton valide du code si dessus je suis rediriger directement sur l'url de la plateforme qui est du genre [https://www.site.partenaire/init.php . Et c'est sur cette page de mon navigateur que s'affiche le token qui est une clef EX: 8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7
A cette etape les instruction du ma plateforme sont les suivante:
*INSTRUCTION DE LA PLATEFORME:
Après l'obtention du token, le marchand doit effectuer une redirection vers l'URL [https://www.site.partenaire/e-commerce/ en postant
des variables. Cette redirection ouvre la session préalablement crée lors de l'initialisation. Chaque session
sera limitée de 5 ouvertures max et valide pendant 30 minutes. Ces paramètres sont ajustables pour
chaque marchand.
Les paramètres de cette requête sont décrits dans le tableau ci-dessous :
-merchantid
-token
-amount
-sessionid
- etc..................
j'ai donc un "POST" a faire sur [https://www.site.partenaire/init.php pour obtenir le TOKEN puis un autre sur [https://www.site.partenaire/e-commerce/ pour ouvrir ma session . Et je ne comprends vraiment pas comment je peux réalise cela. J'ai vraiment besoin de votre aide merci infiniment !
A cette etape les instruction du ma plateforme sont les suivante:
*INSTRUCTION DE LA PLATEFORME:
Après l'obtention du token, le marchand doit effectuer une redirection vers l'URL [https://www.site.partenaire/e-commerce/ en postant
des variables. Cette redirection ouvre la session préalablement crée lors de l'initialisation. Chaque session
sera limitée de 5 ouvertures max et valide pendant 30 minutes. Ces paramètres sont ajustables pour
chaque marchand.
Les paramètres de cette requête sont décrits dans le tableau ci-dessous :
-merchantid
-token
-amount
-sessionid
- etc..................
j'ai donc un "POST" a faire sur [https://www.site.partenaire/init.php pour obtenir le TOKEN puis un autre sur [https://www.site.partenaire/e-commerce/ pour ouvrir ma session . Et je ne comprends vraiment pas comment je peux réalise cela. J'ai vraiment besoin de votre aide merci infiniment !
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 28/05/2013 à 10:56
Modifié par [Dal] le 28/05/2013 à 10:56
Salut gbrylk,
OK, c'est un peu confus, y compris avec tes explications additionnelles.
Tu n'utiliserai pas le même système que cet autre personne : http://forum.opencart-france.com/developpement/cree-module-de-paiement-opencart-t1882.html ?
Si c'est cela, ta description ne correspond pas exactement aux instructions détaillées.
Tu dis que ce token que tu recherches est en fait le token de session avec le partenaire de paiement électronique, alors l'URL contenant le script https://www.site.partenaire/init.php est celle qui sert à ouvrir la session chez le partenaire en question (si un token de session est attribué, c'est bien qu'elle est créée), avec une requête POST formulée avec les paramètres adéquats que tu mentionnes.
Je ne pense pas, comme tu le dis, que le résultat de cette requête donne le token "dans l'URL". Cela devrait être le résultat de la requête renvoyé par le serveur.
Par ailleurs, je comprends qu'une fois ce token récupéré, tu dois rediriger l'utilisateur vers une autre URL, en utilisant le token récupéré, cette fois, dans une URL utilisée pour une redirection.
Si c'est bien cela, tu dois générer ta première requête avec curl sur ton serveur, je pense, car si tu la génère sur le navigateur de l'utilisateur, tu n'en verras pas le résultat.
Puis, tu fais ta redirection sur la 2ème URL.
Pour utiliser curl depuis Php tu devrais faire quelque chose comme cela (à adapter), avec un serveur Php supportant curl :
Ce code n'est pas testé, mais cela devait te donner une idée.
Dal
OK, c'est un peu confus, y compris avec tes explications additionnelles.
Tu n'utiliserai pas le même système que cet autre personne : http://forum.opencart-france.com/developpement/cree-module-de-paiement-opencart-t1882.html ?
Si c'est cela, ta description ne correspond pas exactement aux instructions détaillées.
Tu dis que ce token que tu recherches est en fait le token de session avec le partenaire de paiement électronique, alors l'URL contenant le script https://www.site.partenaire/init.php est celle qui sert à ouvrir la session chez le partenaire en question (si un token de session est attribué, c'est bien qu'elle est créée), avec une requête POST formulée avec les paramètres adéquats que tu mentionnes.
Je ne pense pas, comme tu le dis, que le résultat de cette requête donne le token "dans l'URL". Cela devrait être le résultat de la requête renvoyé par le serveur.
Par ailleurs, je comprends qu'une fois ce token récupéré, tu dois rediriger l'utilisateur vers une autre URL, en utilisant le token récupéré, cette fois, dans une URL utilisée pour une redirection.
Si c'est bien cela, tu dois générer ta première requête avec curl sur ton serveur, je pense, car si tu la génère sur le navigateur de l'utilisateur, tu n'en verras pas le résultat.
Puis, tu fais ta redirection sur la 2ème URL.
Pour utiliser curl depuis Php tu devrais faire quelque chose comme cela (à adapter), avec un serveur Php supportant curl :
$ch = curl_init(); $postparams = array( 'merchantid' => urlencode($merchantid), 'amount' => urlencode($amount), 'sessionid' => urlencode($sessionid), 'purchaseref' => urlencode($purchaseref), 'description' => urlencode($description) ); curl_setopt($ch, CURLOPT_URL,"https://www.site.partenaire/init.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postparams); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // l'option suivante est en principe non nécessaire, si // le site dispose d'un vrai certificat signé par une // autorité de certification reconnue // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $response_token = curl_exec ($ch); curl_close ($ch); // TODO : vérifier qu'on a bien reçu quelque chose qui ressemble // un token valide dans $response_token // rediriger l'utilisateur vers la 2ème URL aveec le token obtenu $url = "https://www.site.partenaire/e-commerce/?" . "merchantid=" . urlencode($merchantid) . "&token=" . urlencode($response_token) . "&amount=" . urlencode($amount) . "&sessionid=" . urlencode($sessionid) . "&purchaseref=" . urlencode($purchaseref) . "&description=" . urlencode($description); if (headers_sent()) { die('<script type="text/javascript">window.location.href="' . $url . '";</script>'); } else { header('Location: ' . $url); die(); }
Ce code n'est pas testé, mais cela devait te donner une idée.
Dal