Paypal Plus Log - Bestellungen werden abgebrochen -

Hallo zusammen,

wir haben ein Problem mit der Paypal Zahlungsart.

Anbei mal der Log von unserem Server, sowie die Antwort von Paypal daraus. Wer kann uns hier helfen? Die Kunden fliegen regelmäßig raus. Vielen Dank! Rebekka

Was Sie hier sehen ist folgendes:
Die erste Zeile ist datum | Herkunft (Shop Plugin) | Methode (Webhook für eine Abgeschlossene Zahlung) | Fehlermeldung (Kann eine PayID (Temp Token) keiner Bestellung zuordnen)
Danach sehen Sie einen kompletten Webhook von PayPal, welcher die gesuchte PayID enthält als auch die Transaktions ID der Bestellung und alle Informationen zu dieser.

2019-02-06 00:32:13] plugin.ERROR: PayPal: [SaleComplete-Webhook] Could not find associated order with the temporaryID PAYID-LRMF7RA3BC81229X23977746 
{
    „webhook“: {
        „id“: „WH-1VP9619976746535J-3J306556EH8353606“,
        „creationTime“: „2019-02-05T23:31:49.682Z“,
        „resourceType“: „sale“,
        „eventType“: „PAYMENT.SALE.COMPLETED“,
        „summary“: „Payment completed for EUR 18.86 EUR“,
        „resource“: {
            „id“: „82X37714Y2389023S“,
            „state“: „completed“,
            „amount“: {
                „total“: „18.86“,
                „currency“: „EUR“,
                „details“: {
                    „subtotal“: „15.87“,
                    „shipping“: „2.99“
                }
            },
            „payment_mode“: „INSTANT_TRANSFER“,
            „protection_eligibility“: „ELIGIBLE“,
            „protection_eligibility_type“: „ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE“,
            „transaction_fee“: {
                „value“: „0.63“,
                „currency“: „EUR“
            },
            „invoice_number“: „HB_SW_2221356“,
            „receipt_id“: „4639596801063312“,
            „parent_payment“: „PAYID-LRMF7RA3BC81229X23977746“,
            „create_time“: „2019-02-04T15:55:14Z“,
            „update_time“: „2019-02-04T15:55:14Z“,
            „links“: [{
                „href“: „https://api.paypal.com/v1/payments/sale/82X37714Y2389023S“,
                „rel“: „self“,
                „method“: „GET“
            }, {
                „href“: „https://api.paypal.com/v1/payments/sale/82X37714Y2389023S/refund“,
                „rel“: „refund“,
                „method“: „POST“
            }, {
                „href“: „https://api.paypal.com/v1/payments/payment/PAYID-LRMF7RA3BC81229X23977746“,
                „rel“: „parent_payment“,
                „method“: „GET“
            }],
            „soft_descriptor“: „PAYPAL *MOBAU GMBH“
        }
    }
} {
    „uid“: „79d33d3“
}

Die Frage ist also, warum kann Ihr Plugin Skript, welches den WH hat, nicht auslesen und die Transaktion ID herauslesen, welche weiter unten angegeben ist : 82X37714Y2389023S.
Die Frage sollten Sie Ihrer IT/Modul Hersteller stellen. Von uns haben Sie ja einen korrekten WH erhalten mit allen Informationen die da sein sollten.

Ich sah mir desweiteren einmal, vorsorglich, alle Ihre API Calls der letzten 30 Tage an. Ich sah das 1.5% aller erstellten Zahlungen fehlschlagen, da Ihr Shop den Warenkorb Inhalt mit 0 als Summe übergibt.

Request Body vom Händler: 
{
    „application_context“: {
        „brand_name“: „Hamann-Baustoffe“,
        „landing_page“: „Login“,
        „locale“: „de_DE“,
        „shipping_preference“: „SET_PROVIDED_ADDRESS“,
        „user_action“: „commit“
    },
    „intent“: „sale“,
    „payer“: {
        „payment_method“: „paypal“
    },
    „redirect_urls“: {
        „cancel_url“: „https://www.hamann-baustoffe.de/PaypalUnified/cancel“,
        „return_url“: „https://www.hamann-baustoffe.de/PaypalUnified/return/plus/1/basketId/plus
    },
    „transactions“: [
        {
            „amount“: {
                „currency“: „EUR“,
                „details“: {
                    „shipping“: „0“,
                    „subtotal“: „0“,
                    „tax“: „0.00“
                },
                „total“: „0.00“
            }
        }
    ]
}
Response Body Antwort von PayPal: 
{
    „debug_id“: „6debf4a0ce15d“,
    „details“: [
        {
            „field“: „transactions[0].amount“,
            „issue“: „Amount cannot be zero“
        }
    ],
    „information_link“: „https://developer.paypal.com/docs/api/payments/#errors“,
    „message“: „Invalid request - see details“,
    „name“: „VALIDATION_ERROR“
}

Das wäre noch etwas, dass Ihr Shophersteller für Sie lösen sollte. Der Zahlungsbetrag darf nicht 0 sein.
Ich hoffe dies hilft Ihnen weiter.

 

 

Hallo,

hast du mal geschaut, ob es in deiner „s_order“ Tabelle eine Bestellung gibt, die in der „temporaryID“ Spalte den Wert „PAYID-LRMF7RA3BC81229X23977746“ stehen hat? Der Fehler besagt ja, dass er zum Webhook keine Bestellung finden kann. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

1 „Gefällt mir“

Ich werde das prüfen lassen, vielen Dank! Melde mich wieder :slight_smile:

Guten Morgen,

die Werte stehen dort nicht.

Hallo,

stehen dort denn andere Werte, die ein ähnliches Format haben oder gar keine?

Viele Grüße aus Schöppingen

cool Michael Telgmann

Ja es gibt dort mehrere Einträge mit dem Anfang PAYID. Aber nicht soo viele. Die meisten beginnen einfach mit Buchstaben oder Zahlen.

Manche Felder sind unausgefüllt bei Temporary ID.

Aber die Bestellung mit dieser Nummer: “invoice_number”: “HB_SW_2221356”  hat keine PAY ID?

Das weiß ich nicht, dafür müsste ich knapp 700 Seiten durchforsten. Kann ich das anhand einer neueren, exakt gleichen Log ID testen? Die wäre jedenfalls einfacher zu finden denke ich. Die Fehlermeldung ist immer die selbe.

Naja, man müsste jetzt herausfinden warum für diese Bestellnummer keine temporary ID gespeichert wurde. 
Mit einem einfachen Query bekommst du doch die Bestellung mit dieser Bestellnummer?

Viele Grüße aus Schöppingen

cool Michael Telgmann

Okay, dann schau ich nochmal nach.

Doch, da ist eine temporary ID drin:

PAYID-LRMF7RA3BC81229X23977746

 

Mmh, die passt ja auch zu den Webhook Daten. Dann verstehe ich gerade nicht, warum der Webhook-Handler vom Plugin die Bestellung nicht finden konnte. Wie ist denn der Bezahlstatus der Bestellung? 

Der ist abgeschlossen, aber dennoch taucht er im Errorlog auf. Ganz viele Kunden von uns klicken auf „Zahlungspflichtig bestellen“ werden dann auf unseren Shop zurück geleitet, der Warenkorb ist dann leer, die Bestellung geht bei uns aber nie ein und die Kunden bekommen auch nichts abgebucht oder ähnliches. Die meisten wissen dann garnicht das Ihre Bestellung nicht ausgelöst wurde.

Wen die Bezahlung direkt fehlschlägt hat das nichts mit dem Webhooks zu tun. Da ist noch eine andere Ursache zu suchen. 
Dass die Bestellung, die einen Webhook Fehler hatte, dennoch abgeschlossen ist, liegt dann wohl daran, dass der Webhook von PayPal noch mal ausgeführt wurde und es dann geklappt hat. 

Viele Grüße aus Schöppingen

cool Michael Telgmann

Okay, ich werde dann mal den Log durchforsten und schauen ob ich eine finde, die nicht eingegangen ist. Und was ist mit diesem Api Call Problem, dass der Warenkorb „0“ ausgibt?

Hallo,

Dazu gibt es hier schon reichlich andere Threads  Wink Auch mit Lösungsverschlägen.

Viele Grüße aus Schöppingen

cool Michael Telgmann

Guten Tag,

 

wo finde ich diese denn? Ich hab jetzt mal durchs Forum geforstet, finde aber nichts dazu. Vielen Dank!

 

Rebekka

Hallo [@Michael Telgmann](http://forum.shopware.com/profile/17553/Michael Telgmann “Michael Telgmann”)‍,

würdest du uns da bitte ein wenig unterstützen?

Wir finden da keine Lösung bzw. einen Lösungsvorschlag.

Vielen Dank

Hallo [@Michael Telgmann](http://forum.shopware.com/profile/17553/Michael Telgmann “Michael Telgmann”)‍,

wir brauchen da wirklich dringend Unterstützung.

Ich finden da auch nichts bzw. keine Lösungsvorschläge.

Hey,

also generell kannst du zwei Dinge nun testen:

1.) Im Risk Management kannst du einstellen, dass PayPal bei Bestellungen mit Summe <= 0,01 € gesperrt wird. Dadurch ist sichergestellt, dass keine 0€ Warenkörbe über PayPal laufen

2.) Deaktiviere bitte mal die Option “Bestellnummern an PayPal übertragen” unter Kunden -> Zahlungen -> PayPal -> Konfiguration. Diese kann u.U. ein ähnliches Verhalten herbeiführen, falls  während der Durchführung einer Plus-Bestellung keine  Zahlung erfolgt (Ablehnung durch PayPal o.ä.). Shopware legt bei dieser Option die Bestellung vor erfolgreich abgeschlossener Zahlung an, was dann in einer offenen Bestellung resultiert.

LG Andre