Call-back icon  Sales: Call 877.832.5289 (N America)|310.295.4144 (International)

Magento

eCommerce Software for Online Growth

Magento Forum

   
Remarques sur le module SPPLUS
 
Luc
Jr. Member
 
Total Posts:  15
Joined:  2007-08-31
 

Bonjour Sel,

Merci pour cette beta de SP+.

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($handle2048);
    
    
// fermeture du CGI
    
fclose($handle);
    
    
// traitement afin de récupérer l'URL SP PLUS à invoquer
    
list($debut,$url,$fin) = split("'"$contents3);
    return 
$url;
     
  
}    





    
    
public function getSpplusSignedUrl()
    
{


        $url_signeurlpaiement 
$this->getSpplusUrl()."?";
        
$url_signeurlpaiement .= "siret=".$this->getSiret();
        
$url_signeurlpaiement .= "&reference;=".$this->getReference();
        
$url_signeurlpaiement .= "&langue;=".$this->getLangue();
        
$url_signeurlpaiement .= "&devise;=".$this->getDevise();
        
$url_signeurlpaiement .= "&montant;=".$this->getMontant();
        
$url_signeurlpaiement .= "&taxe;=".$this->getTaxe();
        if (
$this->getSendParam('valauto') && $this->getValauto()) {
            $url_signeurlpaiement 
.= "&valauto;=".$this->getValauto();
        
}
        
if ($this->getSendParam('validite') && $this->getValidite()) {
            $url_signeurlpaiement 
.= "&validite;=".$this->getValidite();
        
}
        
if ($this->getSendParam('moyen') && $this->getMoyen()) {
            $url_signeurlpaiement 
.= "&moyen;=".$this->getMoyen();
        
}
        
if ($this->getSendParam('modalite') && $this->getModalite()) {
            $url_signeurlpaiement 
.= "&modalite;=".$this->getModalite();
        
}
        
if ($this->getSendParam('methode') && $this->getMethode()) {
            $url_signeurlpaiement 
.= "&methode;=".$this->getMethode();
        
}
        
if ($this->getSendParam('urlretour') && $this->getUrlretour()) {
            $url_signeurlpaiement 
.= "&urlretour;=".$this->getUrlretour();
        
}
        
if ($this->getSendParam('email') && $this->getEmail()) {
            $url_signeurlpaiement 
.= "&email;=".$this->getEmail();
        
}

       

        
if($this->getCGIused())
            
$process_url_string $this->urlSPPlus($url_signeurlpaiement);
        else 
{
            
if ( !extension_loaded('SPPLUS') ) {
                        dl
('php_spplus.so');
                    
}        
            $process_url_string 
signeurlpaiement($this->getMerchantKey(),$url_signeurlpaiement);
        
}
        
return $process_url_string;
    
}

    
public function getCGIused()
    
{
        
return Mage::getStoreConfig('payment/spplus/useCGI')==1;
    
}

Pour les évolutions, SP+ autorise 3 paramètres (arg1,arg2 et arg3), ce serait également pas mal de les voir dans l’admin.

As-tu regardé également du côté de l’URL de retour CGI ?

Luc

 
Magento Community Magento Community
Magento Community
Magento Community
 
Luc
Jr. Member
 
Total Posts:  15
Joined:  2007-08-31
 

fichier à modifier :

config.xml

<spplus_cgi_server_url>https://www.domain.com/cgi.exe</spplus_cgi_server_url><!-- url d'appel en mode CGI' -->
                
<useCGI>0</useCGI><!-- utiliser le mode CGI -->

system.xml

<useCGI translate="label">
                            <!-- 
URL CGI -->
                            <
label>mode CGI</label>
                            <
frontend_type>select</frontend_type>
                            <
source_model>adminhtml/system_config_source_yesno</source_model>
                            <
sort_order>14</sort_order>
                            <
show_in_default>1</show_in_default>
                            <
show_in_website>1</show_in_website>
                            <
show_in_store>0</show_in_store>
                        </
useCGI>                                        

                         <
spplus_cgi_server_url translate="label">
                            <
label>URL du CGI SPPLUS</label>
                            <
frontend_type>text</frontend_type>
                            <
sort_order>14</sort_order>
                            <
show_in_default>1</show_in_default>
                            <
show_in_website>1</show_in_website>
                            <
show_in_store>0</show_in_store>
                        </
spplus_cgi_server_url>

 
Magento Community Magento Community
Magento Community
Magento Community
 
Luc
Jr. Member
 
Total Posts:  15
Joined:  2007-08-31
 

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

<?php
/**
 * Magento SPPLUS extension
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/osl-3.0.php
 *
 * @category   Mage
 * @package    Mage_Spplus
 * @copyright  Copyright (c) 2008 Sébastien LEPERS (SeL)
 * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
?>
<?php 
if (!extension_loaded('SPPLUS') && !$this->isCGIMode() ) : ?><p style="color:red; font-weight:bold;"><?php echo __("SPPLUS extension is not loaded"?></p><?php endif; ?>
<fieldset class="form-list">
<
ul id="payment_form_<?php echo $this->getMethodCode() ?>" style="display: none">
    <
li><?php echo __("You will be redirected to Caisse d'Epargne secure website when you validate the order."?>
    
<div class="input-box">
    
<?php if (count($this->getAvailablePaymtypes()) > && $this->getMethod()->getSendParam('moyen') && !$this->isCGIMode()): ?>
    
<ul>
    
<?php foreach ($this->getAvailablePaymtypes() as $_typeCode => $_typeName): ?>
        
<li><input type="radio" id="spplus_type_<?php echo $_typeCode ?>" name="payment[sppluspayment_type]" value="<?php echo $_typeCode ?>" <?if($_typeCode==$this->getInfoData('payment[sppluspayment_type]')): ?> checked="checked" <?endif ?> />
        <
label for="spplus_type_<?php echo $_typeCode ?>"><?php if ($_typeCode != 'CHK' && $_typeCode != 'PRE'): ?><img src="<?php echo $this->getSkinUrl('images/media/spplus/ico_cart_'.$_typeCode.'.gif') ?>" alt="" /><?php endif; ?> <?php echo $this->__($_typeName?></label>
        </
li>
    
<?php endforeach ?>
    
</ul>
    
<?php endif; ?>
    
</div>
    </
li>
</
ul>
</
fieldset>

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL
Magento Team
 
Avatar
Total Posts:  585
Joined:  2007-10-10
Paris, France
 

Bonjour Luc,

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.

 Signature 

Blog Magento en français | Traduction française de Magento (sa documentation et son fil de discussion)

 
Magento Community Magento Community
Magento Community
Magento Community
 
Luc
Jr. Member
 
Total Posts:  15
Joined:  2007-08-31
 

Bonjour SeL,

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).

Luc

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL
Magento Team
 
Avatar
Total Posts:  585
Joined:  2007-10-10
Paris, France
 

Re,

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.

 Signature 

Blog Magento en français | Traduction française de Magento (sa documentation et son fil de discussion)

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL
Magento Team
 
Avatar
Total Posts:  585
Joined:  2007-10-10
Paris, France
 

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

 Signature 

Blog Magento en français | Traduction française de Magento (sa documentation et son fil de discussion)

 
Magento Community Magento Community
Magento Community
Magento Community
 
lorenzo01
Sr. Member
 
Avatar
Total Posts:  176
Joined:  2007-09-06
France
 

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’

 Signature 

Lorenzo, a french guy.
Sorry for my english !!

 
Magento Community Magento Community
Magento Community
Magento Community
 
dev722z
Member
 
Total Posts:  50
Joined:  2008-04-09
 

salut,

j’obtiens une erreur quand j’essaie d’installer cette extension via Magento Connect:
http://www.magentocommerce.com/boards/viewthread/2268/#t27592

dev722Zz

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL
Magento Team
 
Avatar
Total Posts:  585
Joined:  2007-10-10
Paris, France
 

@Luc: une nouvelle version de l’extension est dispo, peux-tu tester le mode CGI stp car je ne peux pas le tester moi-même. Merci d’avance.

 Signature 

Blog Magento en français | Traduction française de Magento (sa documentation et son fil de discussion)

 
Magento Community Magento Community
Magento Community
Magento Community
 
MmaxX
Sr. Member
 
Avatar
Total Posts:  112
Joined:  2008-04-01
 

Félicitations pour ton très bon travail !

Juste 2 remarques :

1) la page redirect ne redirectionne pas automatiquement, il faut toujours cliquer sur le lien.

2) l’urlretour est http://www.mon_site.com/magento/shop//spplus/spplus/success avec 2 slashes entre shop et spplus, 1 de trop smile !

Encore bravo, et merci si tu peux répondre à mon MP.

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL
Magento Team
 
Avatar
Total Posts:  585
Joined:  2007-10-10
Paris, France
 

@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.

 Signature 

Blog Magento en français | Traduction française de Magento (sa documentation et son fil de discussion)

 
Magento Community Magento Community
Magento Community
Magento Community
 
MmaxX
Sr. Member
 
Avatar
Total Posts:  112
Joined:  2008-04-01
 

- ok j’étais en Mode test.
- oui pour l’ouverture en popup
- j’utilise Firefox 3 (!!!) sur Windows.

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL
Magento Team
 
Avatar
Total Posts:  585
Joined:  2007-10-10
Paris, France
 
MmaxX - 04 July 2008 03:40 AM

- ok j’étais en Mode test..

C’est donc pour ça. Pas de bug smile

 Signature 

Blog Magento en français | Traduction française de Magento (sa documentation et son fil de discussion)

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top
 
Sales: Call 877.832.5289 (North America) 310.295.4144 (International)
© Copyright 2008 Varien. Magento, eCommerce software, is a trademark of Irubin Consulting Inc. DBA Varien
Privacy Policy|Terms of Service
Magento Community Count
52275 users|637 users currently online|105593 forum posts