28-02-2014, 08:34 PM
Bonsoir,
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 :
Ce que j'ai réalisé à l'heure actuelle :
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
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 :
$binKey = pack("H*", $key); //ici
$hmac = strtoupper(hash_hmac('sha512', $msg, $binKey));
Ce que j'ai réalisé à l'heure actuelle :
Code :
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