Bonjour,

Je suis en train de développer une procédure afin de générer le certificat HMAC qui me sert à vérifier l'intégrité des données envoyées au serveur de paiement Paybox. Je suis reparti du code d'exemple du manuel d'intégration via l'exemple écrit en PHP et j'essaie tant bien que mal à trouver un équivalent à la fonction pack sous Webdev.

Pour rappel, voici le code PHP que j'essaie de reproduire en WLangage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$binKey = pack("H*", $key); //ici
$hmac = strtoupper(hash_hmac('sha512', $msg, $binKey));
Ce que j'ai réalisé à l'heure actuelle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
FUNCTION StringToHexa(pString)
    DecValue is int
    HexValue is string
    nCount is int
    IF pString <> "" THEN
    	sSBuffHexa is string = "0x"	
    	FOR nCount = 1 TO Length(pString)		
    		DecValue = Asc(pString[[nCount]])
    		HexValue = NoSpace(NumToString(ValD, "02X"))
    		sSBuffHexa = sSBuffHexa + ValH	
    	END	
    ELSE
    	sSBuffHexa = "Null"
    END
RESULT (sSBuffHexa)
J'arrive donc bien à retourner l'équivalent de ma chaîne en Hexadécimal, mais certaines spécifications de la fonction pack sous PHP m'échappent (comme la notion de répéteur par exemple).

Au final, la signature HMAC que je génère est fausse et le serveur Paybox me retourne une erreur "Problème d'identification du commerce. Accès refusé !".

Cordialement,

Maxime