Habe ja mal vor ca. zwei Monaten eine Payment-Modul-Version für OS-Commerce umgearbeitet für die Verwendung in ZC.
Jetzt ist mir vorerst noch ein Problem übrig geblieben.
Saferpay bietet die Möglichkeit, dass man, zwecks leichterer Zuordnung der einzelnen Zahlungen zu den im Shop getätigten Einkäufen, an Saferpay eine Referenznummer bei jeder Transaktion übermitteln kann. Die im Idealfall mit der orders_id aus der Tabelle orders der DB befüllt wird.
Im Code der entsprechenden Datei sieht das so aus:
Bei mir funktioniert das insoweit als sich der Prozess bis zur Zeile
durcharbeitet und aber in diesem IF-Zweig aus mir unerfindlichen Gründen die Anweisung
nicht bzw. fehlerhaft ausführt. An Saferpay wird immer nur die 1 übermittelt, die ganz oben in dem Code per
festgelegt wurde.
Wenn ich die Zeile //$this->orderid = '45'; auskommentiere, wird an Saferpay die 45 übertragen. Ganz eindeutig sind also die Voraussetzungen so, dass genau dieser Zweig durchlaufen wird.
Wenn ich nur das SQL-Statement
im SQL-Eingabefeld der DB ausführen lasse, erhalte ich auch genau die richtige Zahl als Ergebnis.
Für mich ein Rätsel! Der ganze Code scheint zu stimmen, aber die Übergabe findet nicht richtig statt.
Wer kann mir helfen?
Danke euch
Smartsoul
Jetzt ist mir vorerst noch ein Problem übrig geblieben.
Saferpay bietet die Möglichkeit, dass man, zwecks leichterer Zuordnung der einzelnen Zahlungen zu den im Shop getätigten Einkäufen, an Saferpay eine Referenznummer bei jeder Transaktion übermitteln kann. Die im Idealfall mit der orders_id aus der Tabelle orders der DB befüllt wird.
Im Code der entsprechenden Datei sieht das so aus:
Code:
$query = $db->Execute("SELECT MAX(orders_id)+1 as new_id FROM " . TABLE_ORDERS); $this->orderid = '1'; if ( $query->RecordCount() > 0) { $orders = $db->Execute("SELECT MAX(orders_id)+1 as new_id FROM " . TABLE_ORDERS); if ( isset($orders['new_id']) && (int)$orders['new_id'] > 0 ) $this->orderid = $orders['new_id']; //$this->orderid = '45'; } else { $db->Execute("alter table " . TABLE_ORDERS . " auto_increment=1"); } // order_id + Time XXX_HHMMSS $this->orderid .= '_' . date("YmdHis");
Code:
$this->orderid = $orders['new_id']; //$this->orderid = '45';
Code:
$this->orderid = $orders['new_id'];
Code:
$this->orderid = '1';
Wenn ich die Zeile //$this->orderid = '45'; auskommentiere, wird an Saferpay die 45 übertragen. Ganz eindeutig sind also die Voraussetzungen so, dass genau dieser Zweig durchlaufen wird.
Wenn ich nur das SQL-Statement
Code:
SELECT MAX(orders_id)+1 as new_id FROM orders
Für mich ein Rätsel! Der ganze Code scheint zu stimmen, aber die Übergabe findet nicht richtig statt.
Wer kann mir helfen?
Danke euch
Smartsoul
Kommentar