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