J’ai quelques remarques :
- l’obligation de charger une extension PHP. Certaines boutiques tournent avec l’appel à un CGI et ne disposent pas de php_spplus.so sur leur serveur. Il serait intéressant de pouvoir le paramétrer dans l’admin et d’appeler au besoin la fonction signeurlpaiement ou la fonction ci-dessous depuis getSpplusSignedUrl (depuis Model/method/Spplus.php) :
/* * Fonction qui permet de récupérer l'URL d'appel * au serveur de paiement SP PLUS. * Cette URL est signée numériquement par le CGI. * * $urlCGI : URL d'appel complète du CGI (URL + paramètres) */ public function urlSPPlus($urlCGI) { // exécution du CGI $handle = fopen($urlCGI, "rb");
if (!$handle) { return "Erreur lors de l\'exécution du CGI."; }
// récupération des infos retournées par le CGI $contents = fgetss($handle, 2048);
// fermeture du CGI fclose($handle);
// traitement afin de récupérer l'URL SP PLUS à invoquer list($debut,$url,$fin) = split("'", $contents, 3); return $url;
Pour eviter le message ‘SPPLUS extension is not loaded’ sur le fontend lorsque l’on utilise un CGI il faut également modifier les fichiers :
Block/Form/Spplus.php
en ajoutant la métohde :
public function isCGIMode(){ return $this->getMethod()->getConfigData('useCGI'); }
remplacer le contenu du fichier default/default/template/spplus/form/spplus.phtml par
Merci pour ces retours.
As-tu testé toutes ces modifications de ton côté ?
En ce moment, je manque un peu de temps, alors si je peux intégrer tes modifs telles quelles, je le fais, sinon, ça va me demander un peu de temps.
Je ne comprends pas ta question:
As-tu regardé également du côté de l’URL de retour CGI ?
Tu y réponds toi-même dans ton post suivant, non ?
Autre question: la fonction dl() est deprecated dans php5. Comment éviter le message d’avertissement “dl() is deprecated - use extension=php_spplus.so in your php.ini” ?
Pour l’instant, ça m’empêche d’aller sur la page de redirection vers SPPLUS.
En effet, je propose une solution qui permet de faire appel au CGI pour encrypter l’url d’appel SP+ plutôt que d’utiliser la bibliothèque php. Chez moi, ca fonctionne bien. Comme c’est toi qui a posté la version bêta du module, il me paraissait judicieux que tu intègres les modif si elles te paraissent ok.
Pour l’url de retour CGI, elle permet de récuperer l’état de la transaction SP+ lors de sa modification.
Sur mes boutiques osCommerce actuelles, on procède comme suit :
- commande du client sérialisée dans un fichier lorsque celui-ci va sur le paiement
- il règle : dans ce cas, le serveur SP+ (Url retour CGI dans la doc SP+) nous rappelle, on récupère la commande et on l’enregistre. S’il abandonne avant (parfois il y vont juste pour voir), la commande n’est pas enregistrée (ce qui évite d’avoir des commandes à annuler en permanence).
Pour l’url de notification, elle est utilisée pour mettre à jour la commande quand elle a bien été payée.
Mais pas comme tu le décris. J’ai utilisé le même mode de fonctionnement que celui pour Paypal (déjà intégré dans Magento).
Si le client valide la commande, il n’est pas logique que ça reste dans son panier jusqu’à ce qu’il ait payé (d’ailleurs il est nécessaire d’avoir un numéro de commande pour initier le paiement SPPLUS).
Donc, la commande est mise à jour (avec les infos du paiement) quand SPPLUS nous communique ces infos.
J’ai mis à jour l’extension (v0.6) sur Magento Connect.
Elle prend en compte tes remarques. Peux-tu tester stp car je n’ai pas la possibilité de tester en mode CGI.
Merci
salut,
Pour tester j’ai utilisé le kit CGI fourni par la caisse epargne, une fois compilé j’ai deux fichiers hmac_demo.exe et admin_demo.exe que je place dans mon repertoire /cgi-bin et je notifie dans l’admin magento spplus l’url du cgi https://www.mondomaine.fr/cgi-bin/hmac_demo.exe......mais je suis redirigé vers une page 404...je n’ai plus le message ‘SPPLUS is not loaded’
@MmaxX: J’ai corrigé le double slash.
Pour le point 1, peux-tu préciser plusieurs choses stp:
- Es-tu en mode test ? Si oui, c’est normal que la redirection ne se fasse pas automatiquement.
- As-tu paramétré pour ouvrir spplus dans une pop up ?
- Quel est ton navigateur ?
J’ai re-testé chez moi, et le comportement est normal (sous firefox linux / FF windows / IE 7 / Safari windows / Opera Win & Linux)
Il y aura bientôt une nouvelle version de l’extension SPPLUS qui corrigera qqes (petits) bugs et améliorera 1 ou 2 (petites) choses.
Je vous tiendrai au courant.