Ankündigung

Einklappen
Keine Ankündigung bisher.

"Incorrect integer value" bei Sofort Zahlung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    (Zen-Cart 1.5.6) "Incorrect integer value" bei Sofort Zahlung

    Hallo,
    bekomme nach erfolgter Zahlung mit Sofort Modul folgenden LOG Error nach Umstellung auf PHP 7.3:

    Code:
    [COLOR=#333333][FONT=Verdana][22-Dec-2020 22:19:45 Europe/Vienna] Request URI: /index.php?main_page=sofort_notification, IP address: 3.121.141.196[/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#1 trigger_error() called at [/home/.sites/689/site926/web/includes/classes/db/mysql/query_factory.php:171][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#2 queryFactory->show_error() called at [/xxx/includes/classes/db/mysql/query_factory.php:143][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#3 queryFactory->set_error() called at [/xxx/includes/classes/db/mysql/query_factory.php:270][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#4 queryFactory->Execute() called at [/xxx/includes/functions/functions_general.php:952][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#5 zen_db_perform() called at [/xxx/ext/modules/payment/sofort/services/Communication.php:289][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#6 Communication->handleSofortStatusUpdate() called at [/xxx/ext/modules/payment/sofort/controller/Notification.php:61][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#7 Notification->notificationAction() called at [/xxx//includes/modules/pages/sofort_notification/header_php.php:8][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]#8 require(/xxx/includes/modules/pages/sofort_notification/header_php.php) called at [/xxx/index.php:36][/FONT][/COLOR]
    [COLOR=#333333][FONT=Verdana]--> PHP Fatal error: 1366:Incorrect integer value: '' for column 'orders_id' at row 1 :: INSERT INTO orders_status_history (orders_id, orders_status_id, date_added, customer_notified, comments) VALUES ('', '1', now(), '0', 'SOFORT Banking has been completed successfully - Transaction ID: 81805-170714-5FE26245-6E99. Time: 2020/12/22 22:19:45') ==> (as called by) /xxx/includes/functions/functions_general.php on line 952 <== in /xxx/includes/classes/db/mysql/query_factory.php on line 171.[/FONT][/COLOR]
    Aktuelle Zen Cart 1.5.6.e_DE
    MySQL 5.7 mit MySQL Modus: STRICT_TRANS_TABLES

    Der Bestellvorgang und die Zahlung mittels SOFORT funktionieren trotz PHP Error und es werden auch in die Tabelle orders_status_history die Einträge geschrieben und auch die orders_id wird richtig in die DB geschrieben, möchte das aber lösen.
    Finde aber in diesem Fall leider keinen Ansatz in welcher php Datei zu suchen wäre um einen INT Wert entsprechend zu übergeben.

    Bitte um Hilfe.
    Zuletzt geändert von webchills; 23.12.2020, 16:15. Grund: echte Serverpfade entfernt

    #2
    MySQL läuft hier im Strict Mode und lässt für orders_id keinen leeren Wert zu.

    includes/modules/payment/sofort_su.php
    ab ca. Zeile 365
    Code:
    if ($this->payment_aborted !== $check_query->fields['orders_status_id']) {
                        
                        $sql_data_array = array(
                            'orders_id' => $_SESSION['sofort_order_id'],
                            'orders_status_id' => $this->payment_aborted,
                            'date_added' => 'now()',
                            'customer_notified' => 0,
                            'comments' => 'Payment aborted. Time: ' . date("Y-m-d H:i:s")
                        );
    
                        $db->Execute("UPDATE `" . TABLE_ORDERS . "` SET orders_status = " . (int) $this->payment_aborted . " WHERE orders_id = " . (int) $_SESSION['sofort_order_id']);
                        zen_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
                    }
    $_SESSION['sofort_order_id'] scheint bei dieser Bestellung leer zu sein, daher dieses Debug Log

    Folgende Änderung sollte dieses Log vermeiden, kann das nicht testen, da ich derzeit kein Livesystem für Sofort mit MySQL Strict Mode verfügbar habe:

    Code:
    if ($this->payment_aborted !== $check_query->fields['orders_status_id']) {
                        $sofort_order_id = (int)$_SESSION['sofort_order_id'];
                        $sql_data_array = array(
                            'orders_id' => $sofort_order_id,
                            'orders_status_id' => $this->payment_aborted,
                            'date_added' => 'now()',
                            'customer_notified' => 0,
                            'comments' => 'Payment aborted. Time: ' . date("Y-m-d H:i:s")
                        );
    
                        $db->Execute("UPDATE `" . TABLE_ORDERS . "` SET orders_status = " . (int) $this->payment_aborted . " WHERE orders_id = " . (int) $_SESSION['sofort_order_id']);
                        zen_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
                    }
    P.S.
    Wenn Debug Logs gepostet werden, dann immer echte Serverpfade mit xxx ersetzen. Solche Beiträge müssen ansonsten kommentarlos gelöscht werden.
    Zuletzt geändert von webchills; 23.12.2020, 16:16.

    Kommentar


      #3
      Danke - hab das mal so geändert, leider bleibt der PHP Error bei SOFORT Bestellungen über das SU Modul.
      Irgendwie wird hier kein Wert bei orders_id mitgegeben und der "NULL" Wert wird nicht akzeptiert. Komisch nur, dass trotzdem in der table orders_status_history der richtige Wert bei orders_id eingetragen wird und der entsprechende SU comment.

      Hier die Tabellenfelder- Eigenschaften der table orders_status_history:
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Unbenannt.jpg
Ansichten: 1
Größe: 34,1 KB
ID: 103292

      Vielleicht gibt es ja noch einen TIPP, ansonsten werde ich wohl mit dem Error leben müssen, solange alles funktioniert.

      Kommentar

      Info zu diesem Forenarchiv:
      Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
      Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
      Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
      PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
      Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
      FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

      Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
      Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
      Fehler in der Software können auf Github als Issues gemeldet werden.
      Follow us
      aktuelle version
      Zen Cart 1.5.7g deutsch
      vom 12.12.2023
      [Download]
      Lädt...
      X