Page 1 of 3
Phoca Cart sendet laufend Mails
Posted: 11 Aug 2023, 21:14
by p.luks
Hallo zusammen,
ich hatte meine Seite auf J4 umgestellt und Phocacart auf 4.0.7
Heute kam nach der Umstellung die erste Bestellung mit Paypal (Standard). Kurz Nach der Bestellung haben wir (Kunde und ich) alle 2 Minuten eine E-Mail bekommen, dass die Bestellung abgeschlossen / vollendet ist. Der Anzahl der Mails hat sich mittlerweile verlangsamt, aber es werden immer noch E-Mails versendet.
Woran kann das liegen?
Wo kann ich noch schauen oder etwas einstellen, damit nach Vollendet keine E-Mails mehr versendet werden?
Hier ein Auszug der letzten Mails aus dem Log
Re: Phoca Cart sendet laufend Mails
Posted: 11 Aug 2023, 22:33
by p.luks
Wenn ich die Logs richtig lese, dann scheint das wohl von Paypal zu kommen. Was mir aufgefallen ist, dass es noch keinen Success Eintrag gibt. Der kam sonst immer als letztes.
Bisher gab es pro Bestellung 3 Einträge im Log:
1. SENDING FORM TO PAYPAL
2. Order Status Change
3. SUCCESS
Bei dieser Bestellung fehlt der 3. Eintrag (SUCCESS). Dafür kommt öfter der 2. Eintrag (Order Status Change). Aber jetzt nicht mehr so häufig wie am Anfang.
Re: Phoca Cart sendet laufend Mails
Posted: 11 Aug 2023, 23:52
by Benno
Hi Peer,
sowas, oder zumindest etwas sehr ähnliches gabs schon mal:
viewtopic.php?t=64802
Vielleicht kannst Du damit was anfangen....
Freundliche Grüße,
Benno
Re: Phoca Cart sendet laufend Mails
Posted: 12 Aug 2023, 09:56
by p.luks
Hallo Benno,
ja das sieht nach dem gleichen Problem aus. Heute Nacht ist noch einmal eine Mail gekommen. Wenn ich in meinem Paypal Account nachsehe, dann sehe ich die Transaktion und dort ist sie abgeschlossen.
Ich hoffe nur, dass das einmalig war.
Da ich gerade auf J4 und 4.0.7 umgestellt habe, hätte es auch daran liegen können.
Re: Phoca Cart sendet laufend Mails
Posted: 14 Aug 2023, 14:55
by p.luks
Gestern Mittag und heute Mittag zur gleichen Zeit ist jeweils wieder eine E-Mail versendet worden.
Ich habe mir auch nochmal das Plugin angeschaut und stehe hier vor einem kleinen Rätsel: In der Funktion "onPCPbeforeCheckPayment" läuft es bis zur Zeile 581 durch und es wird auch jedesmal in die history geschrieben (PhocacartOrderStatus::setHistory)
Der danach folgende Logeintrag findet dagegen nicht statt. Ich konnte daran aber keinen Fehler finden.
Code: Select all
// Add log
$msg = 'Order Id: '. $id . " \n"
. 'Txn Id: '.$txnId. " \n"
. 'Message: Payment successfully made'. " \n"
//. 'POST: '.$val. " \n"
. 'Report: '.$listener->getTextReport();
PhocacartLog::add(1, 'Payment - PayPal Standard - SUCCESS', (int)$id, $msg);
exit(0);
Re: Phoca Cart sendet laufend Mails
Posted: 14 Aug 2023, 16:02
by Jan
Hallo, die einzige Möglichkeit, warum es nicht zu Log kommt, ist, dass drinnen:
Code: Select all
PhocacartOrderStatus::setHistory((int)$id, (int)$statusOption, (int)$notify, $comment);
z.B. Fatal Error passiert und Skript wird gestoppt. Da sollte man da aber Error z.B. in error log sehen.
Du kannst es aber auch testen, ähnliches Log before diese Zeile geben:
z.B.
Code: Select all
// Add log
$msg = 'Order Id: '. $id . " \n"
. 'Txn Id: '.$txnId. " \n"
. 'Message: Payment successfully made (information before sending an email) '. " \n"
//. 'POST: '.$val. " \n"
. 'Report: '.$listener->getTextReport();
PhocacartLog::add(1, 'Payment - PayPal Standard - SUCCESS', (int)$id, $msg);
Ja, da sagt, dass Skript dort OK ist und stoppt nach der setHistory Funktion, dann muss man aber in Error Log finden, was da passiert ist
Du kannst z.B. auch Log in setHistory Funktion geben, z.B. SQL zu bekommen:
PhocacartLog::add(1, 'Payment - setHistoryDebug', (int)$id, $query);[/code]
vor:
$db->setQuery($query);
in Funktion setHIstory (administrator/components/com_phocacart/libraries/phocacart/order/status.php, Zeile cca 1162)
Das zeigt SQL und du kannst es dann z.B. in phpMyAdmin testen, ob so ein SQL OK ist
Jan
Re: Phoca Cart sendet laufend Mails
Posted: 14 Aug 2023, 23:50
by p.luks
Hallo Jan,
vielen Dank für die Tips. Ich habe das Joomla LOG aktiviert und werde morgen nachsehen, wenn wieder etwas kommt. Leider hatte ich das auf der Live-Seite deaktiviert.
Zusätzlich habe ich das PhocacartLog wie beschrieben in setHistory hinzugefügt. Ich glaube aber nicht, dass es einen Fehler gibt. Der Eintrag erfolgt, wie zuvor auch. Wir werden aber sehen.
Eine Kopie der aktuellen Seite habe ich auch zum testen in einer Sub-Domain angelegt und Sandkasten-Modus aktiviert. Morgen werde ich mal eine Test-Bestellung durchführen.
Re: Phoca Cart sendet laufend Mails
Posted: 15 Aug 2023, 21:26
by p.luks
Ich kann das auf meiner Test-Seite reproduzieren. Ich muss hier jetzt nur noch die Logs auswerten, um den Fehler zu identifizieren.
Re: Phoca Cart sendet laufend Mails
Posted: 15 Aug 2023, 23:05
by p.luks
Der Query in der "setHistory" sieht OK aus.
Code: Select all
INSERT INTO #__phocacart_order_history
(
order_id,
order_status_id,
notify,
comment,
date,
user_id
)
VALUES
(
68,
6,
1,
'Auftragsstatus wurde durch Zahlungsdienstleister geändert(Paypal Standard)\nInformation\nZahlungs-ID: xxx\nZahlungsbetrag: 19.99\nZahlungsgebühr: 0.73\nZahlungsstatus: Completed',
'2023-08-15 20:16:16',
0
)
Das Log von Joomla (everything.php) gab einen Fehler aus:
Code: Select all
2023-08-15T20:16:17+00:00 CRITICAL 173.0.80.117 error Uncaught Throwable of type Joomla\Database\Exception\ExecutionFailureException thrown with message "Incorrect string value: '\xFCr Zah...' for column `d03dd6e4`.`cms_phocacart_logs`.`description` at row 1".
Stack trace:
#0 [ROOT]/libraries/vendor/joomla/database/src/DatabaseDriver.php(675): Joomla\Database\Mysqli\MysqliStatement->execute()
#1 [ROOT]/administrator/components/com_phocacart/libraries/phocacart/log/log.php(100): Joomla\Database\DatabaseDriver->execute()
#2 [ROOT]/plugins/pcp/paypal_standard/paypal_standard.php(589): PhocacartLog::add(1, 'Payment - PayPa...', 68, 'Order Id: 68 \nT...')
#3 [ROOT]/libraries/src/Plugin/CMSPlugin.php(284): plgPCPPaypal_Standard->onPCPbeforeCheckPayment(2, Array)
#4 [ROOT]/libraries/vendor/joomla/event/src/Dispatcher.php(486): Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}(Object(Joomla\Event\Event))
#5 [ROOT]/libraries/src/Application/EventAware.php(111): Joomla\Event\Dispatcher->dispatch('onPCPbeforeChec...', Object(Joomla\Event\Event))
#6 [ROOT]/components/com_phocacart/controllers/response.php(97): Joomla\CMS\Application\WebApplication->triggerEvent('onPCPbeforeChec...', Array)
#7 [ROOT]/libraries/src/MVC/Controller/BaseController.php(678): PhocaCartControllerResponse->paymentnotify()
#8 [ROOT]/components/com_phocacart/phocacart.php(16): Joomla\CMS\MVC\Controller\BaseController->execute('paymentnotify')
In der error.php stand nur dieses:
Code: Select all
#Fields: datetime priority clientip category message
2023-08-15T19:45:26+00:00 INFO 77.3.142.44 joomlacanceled
Ich habe jetzt in der "administrator/components/com_phocacart/libraries/phocacart/log/log.php" ein Error-Log von Joomla vor db->execute() hinzugefügt:
Log::add(print_r($query, true), LOG::INFO, 'com_phocacart');
Mal schauen, wann da was kommt.
Re: Phoca Cart sendet laufend Mails
Posted: 16 Aug 2023, 15:36
by p.luks
Update:
Über das "Log::add(print_r($query, true), LOG::INFO, 'com_phocacart');" habe ich jetzt den "INSERT INTO" bekommen. Das habe ich geprüft uns sieht gut aus.
Direkt in der Datenbank kopiert, konnte ich den Befehl ausführen. Ich weiß nicht, warum das dann Fehler erzeugt und abbricht.
Ich habe das Log in der Konfiguration von PhocaCart auf "Nur Fehler" geändert und dann kann ich die Bestellungen ausführen ohne dieser Fehler. Das werde ich vorläufig in der Live-Seite machen.
----
Ich habe mir die DB-Tabellen angesehen und festgestellt, dass die von PhocaCart alle "utf8mb3_general_ci" kodiert sind, ebenso auch einige Felder. Jetzt habe ich gelesen, dass es damit zusammenhängen kann, wenn diese nicht "utf8mb4_general_ci" sind. Das Installations-Skript gibt "utf8mb4_general_ci" und "utf8mb4" an.
Sollte ich das danach ma ändern?
Ist da etwas bekannt?