Bonjour,
Merci pour les deux exemples de commandes, ils ont permis de reproduire le problème exactement.
C'est bien un bug d'arrondi dans la conversion du montant en centimes envoyé à Paybox. Le montant était calculé avec (int)(round($montant, 2) * 100). Pour des totaux comme 270,28 ou 128,64, le nombre n'a pas de représentation exacte en virgule flottante : round(270,28 ; 2) vaut en réalité 270,2799..., multiplié par 100 cela donne 27027,9999..., et la conversion en entier tronque vers le bas à 27027, soit un centime de moins. Le contrôle du montant au retour de Paybox utilisait exactement le même calcul, c'est pourquoi la commande était quand même validée sans alerte d'écart.
La correction consiste à arrondir au centime le plus proche, c'est à dire (int)round($montant * 100), à la fois pour le montant envoyé et pour le contrôle au retour. C'est intégré à HikaShop à partir de la version 6.5.1.
Vous êtes en 4.7.1, donc deux possibilités pour l'appliquer sans tout mettre à jour si c'est bloquant pour vous :
1. La plus simple : ouvrez le fichier plugins/hikashoppayment/paybox/paybox.php, repérez les deux lignes de la forme (int)(round(..., 2) * 100) et remplacez-les par (int)round(... * 100) (en retirant donc le round à 2 décimales et en plaçant le calcul *100 à l'intérieur du round).
2. Si vous préférez réinstaller le plugin : téléchargez le package HikaShop, extrayez uniquement le dossier du plugin Paybox, recompressez-le en zip, et installez ce zip seul via la page d'installation des extensions de Joomla. Cela ne met à jour que le plugin Paybox.