Skip to content
Tags

HMAC Paybox en Python

3 décembre 2012

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.😉

From → Python

2 commentaires
  1. 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😉

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :