Jump to content
Sign in to follow this  
registrar

Germanext - Anpassung an Zahlungsmodule von Novalnet

Recommended Posts

Hallo,

 

wir würden gerne Germanext für einen weiteren Zahlungsanbieter (Novalnet) erweitern.
Gibt es hierfür zufällig irgendwo eine Anleitung oder hat das schon mal jemand gemacht?

 

Was mir klar ist:
Germanext hat in payment/manager.php eine Klasse zum verwalten der Zahlarten. Alle Module in payment/modules erweitern diese Klasse und klinken sich dort ein.

Z.B. stellt germanext/payment/modules/sofortueberweisung.php die Verbindung zum außerhalb von Germanext liegenden Zahlungsmodul modules/sofortueberweisung her.

 

Mich ärgern die Abhängigkeiten der Fremdmodule untereinander und die dadurch mangelnde Updatefähigkeit. Ich möchte nach Möglichkeit die Original Novalnet Module nicht anfassen.

 

Die Funktionalität der Zahlungsgebühren von Germanext benötigen wir nicht.

 

Müssen die Original Zahlungsmodule in irgendeiner Weise angepasst werden?

Gibt's was was wir übersehen haben?

 

 

 

Share this post


Link to post
Share on other sites

So ich beantworte mir das jetzt gleich selbst. So geht das:
 

 

  1. Für jede Novalnet Zahlart die entsprechende Klasse in Germanext anlegen. 
    Zum Beispiel für modules/novalnet_paypal braucht es ein Pendant modules/germanext/payment/modules/novalnet_paypal. Als Muster können die bei Germanext mitgelieferten Klassen herhalten.
    Ein Kernpunkt ist hierbei in der Funktion callPayment. Alle Zahlarten bei Novalnet haben die Controller Payment und Validation. Es muss der Payment Controller angeprochen werden.

    <?php
    class gn_novalnet_paypal extends GN_PaymentManager{
      public function __construct(){
        $this->_dir = 'novalnet_paypal';
        parent::__construct();
        $this->_publicName = $this->l('PayPal');
        $this->_publicDescription = $this->l('Bezahlen per PayPal');
      }
     
      public function presentPayment($params){
        global $smarty;
        return parent::presentPayment($params);
      }
     
      public function callPayment($context){
        if ( ! isset($context->cookie->id_currency))
          $context->cookie->id_currency = $context->cart->id_currency;
     
        Tools::redirect($context->link-
        >
    getModuleLink('novalnet_paypal','payment',array(),true));
        return false;
      }
    }
  2. Novalnet Zahlart in Germanext Gebührentabelle eintragen
    Die Zahlarten sind in der Datenbanktabelle ps_payment_cost
    Hier muss ein entsprechender Eintrag erstellt werden.
    Geht nur über eine Insert Anweisung, da Germanext keinen Primärschlüssel in der Tabelle definiert hat.
    Bei künftigen Updates von Germanext könnten weitere Zahlarten dazu kommen. Bisher werden die Schlüssel 1-8 verwendet.

    INSERT INTO `presta_vecnum_1`.`ps_payment_cost`
    (`id_payment`,`module`,`impact_dir`,`impact_type`,`impact_value`,`active`)
    VALUES
    (900,'novalnet_paypal',0,0,0.00,1);
Anmerkung und Anregung für Modelhersteller silbersaiten:
Den Zahlartenmanager hätte man generell auch offener für andere Zahlarten programmieren können. 
(Und die User draussen unabhängiger in der Zahlartenauswahl machen können). 
 
  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More