schnittstelle sofortueberweisung.de

MyOOS hat einen Fehler, oder tut nicht das, was Ihr erwartet? Derartige "Unanehmlichkeiten" bitte hier.
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Nicht wirklich...

Ihre Kunden gehen zu Sofortüberweisung... sehen die total überladene Seite mit den vielen
Anforderungen und gehen zurück zum Shop und wählen Vorkasse / Scheck.

Ergebniss, wir haben die Bestellung doppelt im System :(

Ergo wir haben noch viel Aufwand...

cu

ralf
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

[quote='ajp24',index.php?page=Thread&postID=1212#post1212]Mehr ist nicht nötig um sofortueberweisung im oos zu nutzen

Code: Alles auswählen

class sofortueberweisung {

  	$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_KDNR', '10000', '6', '4', now())");
  	$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_PROJEKT', '50000', '6', '4', now())");
[/quote]

:cursing:

die hier hinterlegten Zugangsdaten sind *gültig* und führten zu zahlreichen fehlgeleiteten Zahlungen aus einem Shop.

Bitte keine Zugangsdaten hier veröffentlichen und in Module maximal Zugangsdaten für Demo-Anbindungen verwenden die bei einer Life-Schaltung zu einem FEHLER fürehn.

Danke
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Beitrag von ajp24 »

gehts um die kundennummer und projektnummer ?

ja die hab ich mir grad mal so ausgedacht

Hat das etwa einer einfach so übernommen :)
Das Wissen der Menschheit gehört der Welt!
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Das Modul wurde normal konfiguriert, geprüft und abgenommen... Irgendwann im laufenden Betrieb wurde das Modul *deaktiviert* und neu
*installiert* ohne Anpassung der Zugangsdaten . 8| Der Shop verwendete die "default" Werte aus dem Modul-Script....

Diese sind *gültig* und *funktionieren* in der Kombination.

Was lernen wir daraus? Richtig. NIE ... wirklich NIE mehr irgendwelche Zugangsdaten im Script hinterlegen.
ajp24
Beiträge: 54
Registriert: 25.05.2009, 21:42

Beitrag von ajp24 »

ja gut das steht ja dann in der datenbank drin

ist ja bei allen anderen modulen auch so
Das Wissen der Menschheit gehört der Welt!
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

[quote='ajp24',index.php?page=Thread&postID=1414#post1414]
ist ja bei allen anderen modulen auch so[/quote]

es kann möglichsein, dass das Projekt in der Vergangenheit 'default' Werte verwendet hat.
Die Möglichkeit, dass ein Shopbetreiber mit diesen Werten arbeiten könnte - ist mir nicht in den Sinn gekommen.

Wenn dir also ein Modul mit default Werten irgendwann mal auffallen sollten, werte ich dies als Bug und würde mich über Hinweise freuen.
Allerdings ändere ich dies nicht mehr an der Version 1.6.x und auch nciht mehr an 1.7.x . Da ich die Zeit einfach nicht habe.... und neue Fehler vermeiden möchten.

Schönen Sonntag

ralf
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Hallo

Ich habe die Version 1.7.15
Habe das Script angepasst und erfolgreich in mein Shop eingebaut.
Soweit funktioniert es auch.
Wie bringe ich jetzt noch die Versandkosten und die Bestell- bzw. ID-Nr. nach Sofortüberweisung ?

gruß

Wolfgang
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

[quote='wolfschw',index.php?page=Thread&postID=1596#post1596]
Wie bringe ich jetzt noch die Versandkosten und die Bestell- bzw. ID-Nr. nach Sofortüberweisung ?
[/quote]

ajp24 hat dies in seinem Posting am Freitag, 3. Juli 2009 um 12:56 beschrieben...

ansonsten einfach das Modul (php script) heir rein kopieren
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Hallo

Hier mein script Sofortueberweisung für 1.7.15

Code: Alles auswählen

class sofortueberweisung { 
var $code, $title, $description, $enabled; 
// class constructor 
function sofortueberweisung() { 
global $oOrder, $aLang; 
$this->code = 'sofortueberweisung'; 
$this->title = $aLang['module_payment_sofortueberweisung_text_title]; 
$this->description = $aLang['module_payment_sofortueberweisung_text_description]; 
$this->sort_order = MODULE_PAYMENT_SOFORTUEBERWEISUNG_SORT_ORDER; 
$this->enabled = ((MODULE_PAYMENT_SOFORTUEBERWEISUNG_STATUS == 'True') ? true : false); 
if ((int)MODULE_PAYMENT_SOFORTUEBERWEISUNG_ORDER_STATUS_ID > 0) { 
$this->order_status = MODULE_PAYMENT_SOFORTUEBERWEISUNG_ORDER_STATUS_ID; 
} 
if (is_object($oOrder)) $this->update_status(); 
$this->form_action_url = 'https://www.sofortueberweisung.de/payment/start'; 
} 
// class methods 
function update_status() { 
global $oOrder; 
if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE > 0) ) { 
$check_flag = false; 

// Get database information 
$db =& oosDBGetConn(); 
$oosDBTable = oosDBGetTables(); 

$check_result = $db->Execute("SELECT zone_id FROM " . $oosDBTable['zones_to_geo_zones] . " WHERE geo_zone_id = '" . MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE . "' AND zone_country_id = '" . $oOrder->billing['country]['id] . "' ORDER BY zone_id"); 
while ($check = $check_result->fields) { 
if ($check['zone_id] < 1) { 
$check_flag = true; 
break; 
} elseif ($check['zone_id] == $oOrder->billing['zone_id]) { 
$check_flag = true; 
break; 
} 

// Move that ADOdb pointer! 
$check_result->MoveNext(); 
} 
if ($check_flag == false) { 
$this->enabled = false; 
} 
} 
} 
function javascript_validation() { 
return false; 
} 
function selection() { 
return array('id' => $this->code, 
'module' => $this->title); 
} 
function pre_confirmation_check() { 
return false; 
} 
function confirmation() { 
return false; 
} 
function process_button() { 
global $oOrder, $oCurrencies; 
if (MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY == 'Selected Currency') { 
$my_currency = $_SESSION['currency]; 
} else { 
$my_currency = substr(MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY, 5); 
} 
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) { 
$my_currency = 'EUR'; 
} 

$process_button_string = oos_draw_hidden_field('user_id', MODULE_PAYMENT_SOFORTUEBERWEISUNG_KDNR) . 
oos_draw_hidden_field('project_id', MODULE_PAYMENT_SOFORTUEBERWEISUNG_PROJEKT) . 
oos_draw_hidden_field('amount', number_format(($oOrder->info['total] - $oOrder->info['shipping_cost]) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency))); 

return $process_button_string; 
} 
function before_process() { 
return false; 
} 
function after_process() { 
return false; 
} 
function output_error() { 
return false; 
} 
function check() { 
if (!isset($this->_check)) { 
$db =& oosDBGetConn(); 
$oosDBTable = oosDBGetTables(); 
$check_result = $db->Execute("SELECT configuration_value FROM " . $oosDBTable['configuration] . " WHERE configuration_key = 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_STATUS'"); 
$this->_check = $check_result->RecordCount(); 
} 

return $this->_check; 
} 
function install() { 

// Get database information 
$db =& oosDBGetConn(); 
$oosDBTable = oosDBGetTables(); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_STATUS', 'True', '6', '3', 'oos_cfg_select_option(array(\'True\', \'False\'), ', now())"); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_KDNR', '10000', '6', '4', now())"); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_PROJEKT', '50000', '6', '4', now())"); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY', 'Selected Currency', '6', '6', 'oos_cfg_select_option(array(\'Selected Currency\',\'Only USD\',\'Only CAD\',\'Only EUR\',\'Only GBP\',\'Only JPY\'), ', now())"); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_SORT_ORDER', '0', '6', '0', now())"); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE', '0', '6', '2', 'oos_cfg_get_zone_class_title', 'oos_cfg_pull_down_zone_classes(', now())"); 
$db->Execute("INSERT INTO " . $oosDBTable['configuration] . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, use_function, date_added) VALUES ('MODULE_PAYMENT_SOFORTUEBERWEISUNG_ORDER_STATUS_ID', '0', '6', '0', 'oos_cfg_pull_down_order_statuses(', 'oos_cfg_get_order_status_name', now())"); 
} 
function remove() { 

// Get database information 
$db =& oosDBGetConn(); 
$oosDBTable = oosDBGetTables(); 
$db->Execute("DELETE FROM " . $oosDBTable['configuration] . " WHERE configuration_key in ('" . implode("', '", $this->keys()) . "')"); 
} 
function keys() { 
return array('MODULE_PAYMENT_SOFORTUEBERWEISUNG_STATUS', 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_KDNR', 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_PROJEKT', 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY', 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE', 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_ORDER_STATUS_ID', 'MODULE_PAYMENT_SOFORTUEBERWEISUNG_SORT_ORDER'); 
} 
} 
?>


Gruß

Wolfgang
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Code: Alles auswählen

function process_button() { 
global $oOrder, $oCurrencies; 
if (MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY == 'Selected Currency') { 
$my_currency = $_SESSION['currency']; 
} else { 
$my_currency = substr(MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY, 5); 
} 
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) { 
$my_currency = 'EUR'; 
} 

$process_button_string = oos_draw_hidden_field('user_id', MODULE_PAYMENT_SOFORTUEBERWEISUNG_KDNR) . 
oos_draw_hidden_field('project_id', MODULE_PAYMENT_SOFORTUEBERWEISUNG_PROJEKT) . 
oos_draw_hidden_field('amount', number_format(($oOrder->info['total'] - $oOrder->info['shipping_cost']) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency))); 

return $process_button_string; 
} 
function before_process() { 
return false; 
} 
function after_process() { 
return false; 
} 
ich würde von ajp24 die veröffentlichte

Code: Alles auswählen

function after_process() { 
verwenden und auf

Code: Alles auswählen

function process_button() { 
global $oOrder, $oCurrencies; 
if (MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY == 'Selected Currency') { 
$my_currency = $_SESSION['currency]; 
} else { 
$my_currency = substr(MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY, 5); 
} 
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) { 
$my_currency = 'EUR'; 
} 

$process_button_string = oos_draw_hidden_field('user_id', MODULE_PAYMENT_SOFORTUEBERWEISUNG_KDNR) . 
oos_draw_hidden_field('project_id', MODULE_PAYMENT_SOFORTUEBERWEISUNG_PROJEKT) . 
oos_draw_hidden_field('amount', number_format(($oOrder->info['total] - $oOrder->info['shipping_cost]) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency))); 

return $process_button_string; 
anpassung verzichten wollen...

ansonsten fehlt in den globals eins $insert_id und in der summe (amount) werden die Versandkosten abgezogen (

Code: Alles auswählen

 - $oOrder->info['shipping_cost]

daher fehlt dieser Betrag in der Summe....

Hoffe es hilft

ralf
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Hallo

Bei mir funktioniert das aber nicht so mit dem
function after_process
Ich komme zwar bei einer Bestellung auf die Seite von Sofortueberweisung und bekomme dann folgende meldung
Die Kunden- oder Projektnummer ist ungültig.

gruß
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

evtl. stimmt die klasse nicht... ich kenne die Änderungen ja nicht...

aus

Code: Alles auswählen

function process_button() { 
global $oOrder, $oCurrencies; 
if (MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY == 'Selected Currency') { 
$my_currency = $_SESSION['currency]; 
} else { 
$my_currency = substr(MODULE_PAYMENT_SOFORTUEBERWEISUNG_CURRENCY, 5); 
} 
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) { 
$my_currency = 'EUR'; 
} 
wird

Code: Alles auswählen

function process_button() { 
return false; 
} 
Die Zugangsdaten von Softüberweisungen sollten übermittelt werden... was sendet der shop?
und wie sieht die klasse aus?

ralf
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

Hallo

Code: Alles auswählen

// class methods 
function update_status() { 
global $oOrder; 
if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE > 0) ) { 
$check_flag = false; 

// Get database information 
$db =& oosDBGetConn(); 
$oosDBTable = oosDBGetTables(); 

$check_result = $db->Execute("SELECT zone_id FROM " . $oosDBTable['zones_to_geo_zones] . " WHERE geo_zone_id = '" . MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE . "' AND zone_country_id = '" . $oOrder->billing['country]['id] . "' ORDER BY zone_id"); 
while ($check = $check_result->fields) { 
if ($check['zone_id] < 1) { 
$check_flag = true; 
break; 
} elseif ($check['zone_id] == $oOrder->billing['zone_id]) { 
$check_flag = true; 
break; 
} 

// Move that ADOdb pointer! 
$check_result->MoveNext(); 
} 
if ($check_flag == false) { 
$this->enabled = false; 
} 
} 
}


gruß
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

hier mal eine Kopie aus dem payPal Modul

Code: Alles auswählen

// class methods
    function update_status() {
      global $oOrder;

      if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYPAL_ZONE > 0) ) {
        $check_flag = false;

        // Get database information
        $dbconn =& oosDBGetConn();
        $oostable =& oosDBGetTables();

        $zones_to_geo_zonestable = $oostable['zones_to_geo_zones];
        $check_result = $dbconn->Execute("SELECT zone_id FROM $zones_to_geo_zonestable WHERE geo_zone_id = '" . MODULE_PAYMENT_PAYPAL_ZONE . "' AND zone_country_id = '" . $oOrder->billing['country]['id] . "' ORDER BY zone_id");
        while ($check = $check_result->fields) {
          if ($check['zone_id] < 1) {
            $check_flag = true;
            break;

          } elseif ($check['zone_id] == $oOrder->billing['zone_id]) {
            $check_flag = true;
            break;

          }

          // Move that ADOdb pointer!
          $check_result->MoveNext();
        }

        // Close result set
        $check_result->Close();

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }
    }
in der 1.7.x Version verwenden wir

Code: Alles auswählen

        $dbconn =& oosDBGetConn();
        $oostable =& oosDBGetTables();
Dies kann man leicht prüfen, wenn man mit WinMerge z.b. sich den Unterschied
der klassen zwischen 1.7. und 1.6 anzeigen läßt

WinMerge gibt es hier
http://winmerge.org/

Grüße

ralf
r23
Beiträge: 2622
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

ps

ich habe paypal verwendet...

aus

Code: Alles auswählen

      if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYPAL_ZONE > 0) ) {
wird

Code: Alles auswählen

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE > 0) ) { 

aus

Code: Alles auswählen

$check_result = $dbconn->Execute("SELECT zone_id FROM $zones_to_geo_zonestable WHERE geo_zone_id = '" . MODULE_PAYMENT_PAYPAL_ZONE . "' AND zone_country_id = '" . $oOrder->billing['country]['id] . "' ORDER BY zone_id");
wird

Code: Alles auswählen

$check_result = $dbconn->Execute("SELECT zone_id FROM $zones_to_geo_zonestable WHERE geo_zone_id = '" . MODULE_PAYMENT_SOFORTUEBERWEISUNG_ZONE . "' AND zone_country_id = '" . $oOrder->billing['country]['id] . "' ORDER BY zone_id"); 
Sorry...

cu

ralf
Antworten