Gelöst JTL Shop 5 PayPal Express mit aktiviertem Cache

TurboPerformance

Aktives Mitglied
20. Januar 2010
35
8
Haiger
Nabend zusammen,
haben folgendes Problem.

Version: Shop 5.0.1 und Paypal Plugin 2.0.0

Mit aktiviertem Cache zB Redis oder Memcached funktioniert der Paypal Express Checkout nicht immer.
Wenn es nicht klappt dann wird der Warenkorb geladen und im Error Log von PayPal steht dann:

Code:
        [0] => PayPal\EBLBaseComponents\ErrorType Object
                (
                    [ShortMessage] => Transaction refused because of an invalid argument. See additional error messages for details.
                    [LongMessage] => Order total is invalid.
                    [ErrorCode] => 10401
                    [SeverityCode] => Error
                    [ErrorParameters] =>
                )

            [1] => PayPal\EBLBaseComponents\ErrorType Object
                (
                    [ShortMessage] => Transaction refused because of an invalid argument. See additional error messages for details.
                    [LongMessage] => Item total is invalid.
                    [ErrorCode] => 10426
                    [SeverityCode] => Error
                    [ErrorParameters] =>
                )

            [2] => PayPal\EBLBaseComponents\ErrorType Object
                (
                    [ShortMessage] => Transaction refused because of an invalid argument. See additional error messages for details.
                    [LongMessage] => Item amount is invalid.
                    [ErrorCode] => 10431
                    [SeverityCode] => Error
                    [ErrorParameters] =>

Also werden wohl die Preise nicht immer erkannt,
eventuell kann es ja jemand nachstellen oder hat den Fehler schonmal gehabt.

Freundliche Grüße
 

TurboPerformance

Aktives Mitglied
20. Januar 2010
35
8
Haiger
Bei PayPal Plus normaler Checkout besteht das Problem auch mit aktiviertem Cache.
Ausserdem nicht nur bei Redis/Memcached sonder auch bei APCu und Datei Cache...

Wenn es mal nicht funktioniert kommt dort folgender Fehler:

XXXXXXX im Code anonymiesiert...
Code:
Patch: ERROR: {"name":"VALIDATION_ERROR","details":[{"field":"purchase_units[0]","issue":"Item amount must add up to specified amount subtotal (or total if amount details not specified)"}],"message":"Invalid request - see details","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"64bfbb3779cea"} -
[
    {
        "op": "add",
        "path": "/potential_payer_info/billing_address",
        "value": {
            "line1": "XXXXX",
            "city": "XXXXXX",
            "postal_code": "XXXXXX",
            "country_code": "DE"
        }
    },
    {
        "op": "add",
        "path": "/transactions/0/item_list/shipping_address",
        "value": {
            "recipient_name": "test TestTestTest",
            "line1": "test 1",
            "city": "XXXXXX",
            "postal_code": "XXXXX",
            "country_code": "DE"
        }
    },
    {
        "op": "replace",
        "path": "/transactions/0/amount",
        "value": {
            "currency": "EUR",
            "total": "21",
            "details": {
                "shipping": "8",
                "subtotal": "13",
                "handling_fee": "0",
                "shipping_discount": "0",
                "tax": "0"
            }
        }
    }
]
 

TurboPerformance

Aktives Mitglied
20. Januar 2010
35
8
Haiger
Der JTL Support hat rausgefunden das hier die Preise auf einmal mit Komma getrennt an Paypal geschickt werden statt mit Punkt, dies passiert nur bei aktiviertem Cache im Backend, egal welcher.
Dieses Verhalten soll vom Server verursacht werden wenn der Cache aktiviert ist.

Hat da jemand eine Idee, was am Server das auslösen könnte, vielleicht hat jemand ja so ein Problem schonmal gehabt?

Hier noch vom Log ein Auschnitt an welchen stellen auf einmal ein Komma erscheint:
Code:
PUNKT:
[OrderTotal] => PayPal\CoreComponentTypes\BasicAmountType Object
(
[currencyID] => EUR
[value] => 29.98
)

KOMMA:
[OrderTotal] => PayPal\CoreComponentTypes\BasicAmountType Object
(
[currencyID] => EUR
[value] => 29,98
)

Danke
 

TurboPerformance

Aktives Mitglied
20. Januar 2010
35
8
Haiger
Zur Info: Problem scheint gelöst zu sein.

Habe dann nach hin und her schreiben mit dem Support festgestellt,
das die Serversprache wieso auch immer auf Deutsch steht, wird wahrscheinlich sehr selten sein.

Auf US Sprache stellen Befehl (ubuntu):
sudo update-locale LANG=en_US.UTF-8

Danach den Server neu gestartet.
Ein Test PHP Script auf dem Webspace mit Inhalt:
<?php
var_dump(locale_get_default());

zeigte vorher beim Aufruf über den Browser de_DE an,
nach der Änderung jetzt en_US.

Meiner Meinung könnte da aber für den Fall der Fälle irgendwie eine Konvertierung bzw. PHP setlocale -> engl. Währung an irgendeiner Stelle im JTL Code hinzugefügt werden, wahrscheinlich ja dann im Cache Teil?
 
  • Gefällt mir
Reaktionen: joker888

Ähnliche Themen