La solution e-commerce Magento permet d'intégrer de nombreuses interfaces de paiement via le système de module magento.
Parmi celles-ci, l'extension SPPLUS permet de mettre en place le module de paiement SP PLUS de la Caisse d'Épargne. Cette extension est disponible via Magento Connect.
Cependant, cette extension présente un bug fort contraignant. En effet toutes les commandes dont l'email du client contient le caractère _ ne sont pas traitées. Cela provient d'un mauvais calcul de la clé HMAC.
Pour info, la clé HMAC est un code d'authentification envoyée par SPPLUS. Pour calculer cette clé et ensuite pouvoir la comparer avec la clé reçue, on utilise la fonction nthmac présente dans la librairie spplus.so fournie par SP PLUS. Le calcul de cette clé se fait avec plusieurs paramêtres dont entre autre l'email du client. Cependant pour bien pouvoir utiliser cette fonction, il faut échapper les caractères spéciaux tels que _.
Pour corriger ce bug il faut donc modifier la méthode ipnPostSubmit du fichier app/code/community/Mage/Spplus/Model/Method/Spplus.php. Il faut remplacer les lignes :
$chaineParam = str_replace(":", ":", $chaineParam);
$chaineParam = str_replace("/", "/", $chaineParam);
$chaineParam = str_replace("_", "_", $chaineParam);
$chaineParam = str_replace("@", "@", $chaineParam);
Par
Ce bug a été reporté sur le forum de l'extension et devrait très probablement corrigé dans sa version 1.1.5