[RESOLU] Paybox input et variable

Petit nouveau ! | 4 Messages

17 oct. 2012, 20:25

Bonjour,

J'essais de mettre en place une solution de paiement en ligne Paybox.
Je fais donc d'abord quelques tests.

Voici le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>Page de test Paybox - AI</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	</head>
	<body>
		<h2>Page de test Paybox - AI</h2>
<?php
$dateTime= date("c");
$msg="PBX_SITE=1999888".
"&PBX_RANG=32".
"&PBX_IDENTIFIANT=110647233".
"&PBX_TOTAL=1000".
"&PBX_DEVISE=978".
"&PBX_CMD=TEST".
"&[email protected]".
"&PBX_RETOUR=Mt:M;Ref:R;Auto:A;Erreur:E".
"&PBX_HASH=SHA512".
"&PBX_TIME=$dateTime";
$keyTest="0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
$binKey = pack("H*", $keyTest);
$hmac= strtoupper(hash_hmac('sha512', $msg, $binKey));
?>
		<form method="POST" action="https://preprod-tpeweb.paybox.com/cgi/MYchoix_pagepaiement.cgi">
			<input type="hidden" name="PBX_SITE" value="1999888" />
			<input type="hidden" name="PBX_RANG" value="32" />
			<input type="hidden" name="PBX_IDENTIFIANT" value="110647233" />
			<input type="hidden" name="PBX_TOTAL" value="1000" />
			<input type="hidden" name="PBX_DEVISE" value="978" />
			<input type="hidden" name="PBX_CMD" value="TEST" />
			<input type="hidden" name="PBX_PORTEUR" value="[email protected]" />
			<input type="hidden" name="PBX_RETOUR" value="Mt:M;Ref:R;Auto:A;Erreur:E" />
			<input type="hidden" name="PBX_HASH" value="SHA512" />
			<input type="hidden" name="PBX_TIME" value="<?php echo $dateTime; ?>" />
			<input type="hidden" name="PBX_HMAC" value="<?php echo $hmac; ?>" />
			<input type="submit" value="Envoyer" />
		</form>
	</body>
</html>
En retour le serveur m'envoi un message d'erreur.
Le support Paybox m'a informé succinctement que l'erreur vient de la valeur de PBX_HMAC qui serait <?php echo $hmac; ?> ???
Pour info, si je remplace, en dur, les value de PBX_TIME et de PBX_HMAC le serveur répond, après avoir décomposé la partie php pour recupérer les bonnes valeur de $msg, $dateTime et $hmac. Ce qui valide mon serveur (et celui de paybox)
Paybox m'a confirmé la bonne syntaxe de la page.
J'ai installé la page sur 2 serveurs différents, idem.

Mes questions sont, s'il vous plaît :
- y-a-t'il un moyen de récupérer ce qui est envoyé au serveur, ce qui est généré par le POST, pour l'analyser ?
- est-il possible d'écrire tout cela autrement ?
- vos autres suggestions… ?
- une piste…

3 jours que je suis dessus et des dizaines de tests plus loin, là maintenant, je ne sais vraiment plus quoi essayer…
Help !!

Merci
JC

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

17 oct. 2012, 22:40

salut,

change la cible du formulaire pour un fichier à toi, dans lequel tu met juste
<?php
var_dump($_POST);
?>
tu auras ce que le formulaire envoie


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

18 oct. 2012, 08:54

Bonjour Moogli

Génial ! Grand merci pour ta réponse qui fait avancer mon pb.

Voilà le contenu du fichier :
array(11) { ["PBX_SITE"]=> string(7) "1999888" ["PBX_RANG"]=> string(2) "32" ["PBX_IDENTIFIANT"]=> string(9) "110647233" ["PBX_TOTAL"]=> string(4) "1000" ["PBX_DEVISE"]=> string(3) "978" ["PBX_CMD"]=> string(5) "TEST3" ["PBX_PORTEUR"]=> string(12) "[email protected]" ["PBX_RETOUR"]=> string(26) "Mt:M;Ref:R;Auto:A;Erreur:E" ["PBX_HASH"]=> string(6) "SHA512" ["PBX_TIME"]=> string(24) "" ["PBX_HMAC"]=> string(20) "" }
En effet, PBX_TIME et PBX_HMAC semblent vides "", c'est cela ??

Petit nouveau ! | 4 Messages

18 oct. 2012, 09:27

J'ai progressé grâce à Moogli :

J'obtiens une réponse correcte maintenant pour PBX_TIME et PBX_HMAC:
array(11) { ["PBX_SITE"]=> string(7) "1999888" ["PBX_RANG"]=> string(2) "32" ["PBX_IDENTIFIANT"]=> string(9) "110647233" ["PBX_TOTAL"]=> string(4) "1000" ["PBX_DEVISE"]=> string(3) "978" ["PBX_CMD"]=> string(5) "TEST3" ["PBX_PORTEUR"]=> string(12) "[email protected]" ["PBX_RETOUR"]=> string(26) "Mt:M;Ref:R;Auto:A;Erreur:E" ["PBX_HASH"]=> string(6) "SHA512" ["PBX_TIME"]=> string(25) "2012-10-18T09:15:08+02:00" ["PBX_HMAC"]=> string(128) "ED435BD3CA16B7E5698C6A8C79A12C465736A822C4CDE56F32A14D20F748D94832612DFA2241926977AE28EA318D26E6BDC8830A555ACBDD00DEFC5E403E520C" }
Cause : extension de fichier en .html et non pas en .php !! Hum ! Cela ne permettais donc à priori pas de retourner les variables via echo

MAIS toujours une erreur du serveur…
Je poursuis …
Merci

Petit nouveau ! | 4 Messages

18 oct. 2012, 10:19

Re !

C'est résolu ! Cela venait bien de l'extension de mon fichier !
Tellement évident…

Merci moogli pour tes conseils qui m'ont permis de débuguer

JC