Wie würde ich genau diese Logik in M2 mit der neuen Gateway-API implementieren? https://github.com/ergopalpatel/Magento_Payment_Gateway_Skeleton
Schritte
- Der Kunde wählt eine benutzerdefinierte Zahlungsmethode
- Wenn Sie auf "Bestellung aufgeben" klicken, wird der Kunde mit einigen zusätzlichen POST-Daten zur externen Zahlungsseite weitergeleitet
- Die Zahlungsseite leitet bei Erfolg / Misserfolg zurück zu einem bestimmten Magento-Controller, der das Ergebnis verarbeitet
Ich habe mich umgesehen und festgestellt, dass \ Magento \ Payment \ Model \ Method \ Cc veraltet ist und dass Sie die Gateway-API verwenden sollten. Ich habe die Artikel von Max Pronko und https://www.maxpronko.com/blog/magento-2-payment-gateway-api gelesen und versucht, das Magento-Modul und das Braintree-Modul zu analysieren, aber ich kann meinen Kopf einfach nicht einwickeln um diese herum ist entweder zu viel oder zu wenig los.
Wo fange ich überhaupt an, wenn ich diesen Flow mit Weiterleitungen implementieren möchte? Gibt es irgendwo eine umfassende Dokumentation oder ein auf der Gateway-API implementiertes Modul, das genau das tut, was ich brauche?
BEARBEITEN
Ich habe mich in den Magento_Payment-Code vertieft und es scheint, dass dieser Fluss überhaupt nicht unterstützt wird. Klassen, die das Magento \ Payment \ Gateway \ Http \ ClientInterface implementieren und die Anforderungen und Antworten verarbeiten, scheinen nur mit synchronen Anforderungen gegen ein Webapi zu funktionieren .
Welche Möglichkeiten gibt es dann? Veraltete Komponenten verwenden?
BEARBEITEN
Es scheint, als ob Sie Magento \ Payment \ Model \ MethodInterface verwenden (das eine @ api-Annotation enthält, also hoffe ich, dass es nicht bald veraltet ist) und die Implementierung Ihrer eigenen Logik für Weiterleitungen / Validierungen usw. der richtige Weg ist jetzt.
Antworten:
Um ein benutzerdefiniertes Zahlungsmodul mit Umleitung zu implementieren, müssen Sie die folgende Logik implementieren:
Sie sollten die gesamte Payment Gateway-Infrastruktur von Klassen implementieren:
- -
Einige Klarstellungen:
Magento\Payment\Model\Method\Cc
ist in der Tat veraltet und sollte nicht verwendet werden.Magento\Payment\Gateway\Http\ClientInterface
sollte zum Senden von Hintergrundanforderungen an ein Zahlungsgateway verwendet werden. Es gibt sogar 2 Implementierungen fürClientInterface
Sollten Sie Fragen haben, lassen Sie es mich bitte wissen.
quelle