Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[WD16] Trouver un équivalent à la fonction pack() de PHP
#1
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 :

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
#2
Re..

Je ne connais pas WebDEv, mais peut-être que ça peu t'aider... pour le format pack().
<!-- m --><a class="postlink" href="http://php.net/manual/fr/function.pack.php">http://php.net/manual/fr/function.pack.php</a><!-- m -->

Bon courage.
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


#3
Bonjour,

Pourquoi n'écrivez vous pas la fonction en php directement ?
Cordialement

Madsl@nD
#4
Bonjour,

Tout d'abord merci pour vos réponses.

Ensuite, j'ai développé un équivalent PHP qui fonctionne et qui envoie les bonnes informations au serveur de Paybox. Le problème, c'est que je dois adapter ce code en Webdev qui est un langage que je découvre et certaines fonctions comme pack() de PHP sont spécifiques et n'existent pas en Webdev. J'essaie donc d'adapter cette fonction en WLangage, mais il semble que cela soit plus complexe que ce je croyais.
#5
Je ne sais pas si vous savez mais dans un projet webdev php, vous pouvez écrire directement en php, il suffit de cliquer sur WL dans l'entête du code serveur.
De même si vous cliquez sur WL dans un code navigateur, vous pouvez directement écrire en javascript.
Cordialement

Madsl@nD
#6
Je crois que je vais me diriger vers cette solution.


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)