HMAC Paybox en Python
Paybox est une solution de paiement électronique que nous avons utilisé plusieurs fois.
Pour se connecter avec le service Paybox (en version 5.08), il est nécessaire de produire une empreinte HMAC des données du serveur que le client va envoyer vers le serveur Paybox pour payer. L’objectif est d’empêcher toute falsification car elle serait détectée grâce à l’empreinte qui ne correspondrait plus.
La documentation fournit une implémentation d’exemple en PHP :
<?php
$key =
"0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
$msg = "FORMULAIRE";
$binkey = pack("H*", $key);
$hmac = strtoupper(hash_hmac('sha512', $msg, $binkey));
?>
Voici l’équivalent en Python :
import binascii import hashlib import hmac PRIVATE_KEY = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF" msg = "FORMULAIRE" binary_key = binascii.unhexlify(PRIVATE_KEY) hmac = hmac.new(binary_key, msg, hashlib.sha512).hexdigest().upper()
Les deux codes fournissent le même résultat pour des couples (clé privée, message) identiques. Charge à vous de mettre les bonnes valeurs.
Merci pour ce travail.
Grâce à vous, nous allons pouvoir fournir un exemple en Python dans nos documents d’intégration. Nous ferons un petit lien vers cette page en référence
Excellente idée !