SalesChannel-API: Finish-URL als Parameter für Bezahlung über PayPal

Hallo ans Forum,

ich bräuchte Hilfe beim Verwenden der SalesChannel-API.

Und zwar möchte ich, wie in der Doku beschrieben, den Bezahlprozess über PayPal für eine Bestellung starten.


Dem Request möchte ich eine eigene „finishUrl“ mitgeben, um danach (oder auch bei Abbruch) auf eine eigene Seite weiterzuleiten. 

const url = `${BASE_URL}/sales-channel-api/v3/checkout/order/${orderId}/pay`;
const body = JSON.stringify({"finishUrl ": "google.de"});
return fetch(url, { method: 'POST', headers, body })
        .then((resp) => resp.json())
        .then(({ paymentUrl }) => paymentUrl);

Die Weiterleitung an sich funktioniert, aber egal, wie ich es anstelle, der Parameter (Google nur als Beispiel) wird nicht nach PayPal übernommen, der Link führt weiterhin zum Shop zurück.

Was mache ich falsch? 

 

Viele Grüße!

Leider habe ich bisher noch keine Lösung gefunden :confused:

Hatte noch niemand dieses Problem?

Hallo zusammen,

das erstmal zu Shopware zurückgeleitet wird ist auch korrekt. Dort wird dann die Zahlung abgeschlossen. Erst danach kommt die Finish-Seite ins Spiel. In der Standard Storefront ist das z.B. die Danke-Seite mit der Zusammenfassung der Bestellung. 

Mit Finish-Seite ist nicht die Rückleitung von PayPal aus gemeint.

Viele Grüße aus Schöppingen

cool Michael Telgmann

Hallo,

erst mal danke für die Erklärung.

In meinem Fall binden wir über eine Website die Shopware-API an (headless) und wickeln darüber auch die Bestellung ab. Das funktioniert bereits.
Wir möchten hier auch Zahlung über die PayPal-API anbieten, was auch schon funktioniert.

Allerdings landen wir NACH der Zahlung (und auch bei Abbruch) im Shopware-Shop und nicht auf der Webseite - was nach der Erkärung ja das intendierte verhalten ist.
Wir möchten den Shopware-Shop aber nicht für die Öffentlichkeit, er soll nur als Backend dienen. 

Gibt es also eine Möglichkeit, beim Zahlen über die API eine eigene Redirect-URL mitzugeben (unter der man dann auch das Ergebnis selbst handlen kann)? 

Viele Grüße!

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

uns würde das auch interessieren.

Erst danach kommt die Finish-Seite ins Spiel. In der Standard Storefront ist das z.B. die Danke-Seite mit der Zusammenfassung der Bestellung. 

Mit Finish-Seite ist nicht die Rückleitung von PayPal aus gemeint.

wir möchten aucn nicht auf der Finish-Dankes-Seite im Shop landen sondern auf der Website, die wir über die API angebunden haben. Der Shopware-Shop dient nur als Headless-Backend, deshalb soll man auch nicht dorthin (und somit eine andere URL) geleitet werden. Führendes System, das die Bestellung und den Zahlprozess auslöst, soll die Website sein. Sie soll nur über API mit Shopware kommunizieren.

man landet auf einer Finish-Seite mit so einer URL

/payment/finalize-transaction?_sw_payment_token=XXXXX&token=XXXXXX

Wie können wir statt auf der Finish-Seite in Shopware zurück auf unsere Website kommen? Kann man eine Art Redirect-Parameter mitgeben?

Hallo, 

wenn man von einem Zahlungsanbieter zurück kommt, landet man in diesem Controller platform/PaymentController.php at v6.3.5.1 · shopware/platform · GitHub
Dieser hat erstmal so gar keine Shop-Seite. Also wird auch nicht die Finish-Seite der Storefront angezeigt oder so was.
Wie ihr an der markierten Stelle seht, wird geprüft, ob vorher bei der Erstellung der Zahlung eine Finish-URL übergeben wurde. Falls dem so ist, wird diese aufgerufen.

Diese Finish-URL schickt ihr hier mit: platform/HandlePaymentMethodRoute.php at v6.3.5.1 · shopware/platform · GitHub oder eben hier: platform/SalesChannelCheckoutController.php at v6.3.5.1 · shopware/platform · GitHub

Viele Grüße aus Schöppingen

cool Michael Telgmann

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

und wie können wir diese finishUrl mitgeben im API Call?

Aus Versions- und Updategründen verwenden wir nicht die store-api sondern sales-channel-api