Jump to content

Germanext - Anpassung an Zahlungsmodule von Novalnet


registrar

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?

 

 

 

Link to comment
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
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...