Externe Zahlungsmethoden zum Zahlungsformular hinzufügen
Nicht-Stripe-Zahlungsmethoden im PaymentElement anzeigen.
Das Stripe PaymentElement kann eine Reihe von externen Zahlungsmethoden anzeigen. Wir definieren eine externe Zahlungsmethode als eine Methode, die nicht in Ihr Stripe-Dashboard integriert ist. Stattdessen leiten Sie Ihre Kundinnen und Kunden zur Zahlung an eine externe URL weiter. Alle Transaktionen finden außerhalb von Stripe statt, ohne dass Sie über deren Betrag, Währung, Status usw. informiert werden. Diese Zahlungen werden nirgendwo in Ihrem Stripe-Dashboard angezeigt. Stripe erhebt keine Zahlungsgebühren, wenn eine solche Transaktion stattfindet.
Wenn Zahlungen extern eingezogen werden, findet keine Abstimmung zwischen der Magento-Bestellung und der externen Zahlung statt. Die Bestellung bleibt im Status „Ausstehende Zahlung“ und ohne Angaben zum Zahlungsstatus. Das bedeutet, dass Sie auch einen gewissen Abgleich vornehmen müssen.
Stripe stellt keine Richtlinien zur Verfügung, wie externe Zahlungen mit Magento-Bestellungen abgeglichen werden können. Um den Abgleich zu implementieren, wenden Sie sich an das Support-Team der externen Zahlungsmethode, um die spezifischen Integrationsleitfäden zu erhalten.
In diesem Leitfaden wird nur beschrieben, wie Sie externe Zahlungsmethoden aktivieren und auf Ihrer Bezahlseite anzeigen können. Wenn der Kunde/die Kundin auf die Schaltfläche „Bestellung aufgeben“ klickt, wird er/sie zu einer externen URL weitergeleitet, die Sie für die externe Zahlungsmethode angeben.
Neues Modul erstellen
Erstellen Sie ein neues Modul mit der folgenden Verzeichnisstruktur. Ersetzen Sie Vendor
durch Ihren bevorzugten Anbieternamen.
app/code/Vendor/StripeCustomizations/ ├── etc/ │ ├── module.xml │ └── di.xml ├── Plugin/ │ └── Helper/ │ └── PaymentMethodPlugin.php ├── registration.php
Registrieren Sie Ihr Modul in der Datei registration.
bei Magento.
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendor_StripeCustomizations', __DIR__ );
Definieren Sie in etc/module.
das Modul und richten Sie Abhängigkeiten ein, um sicherzustellen, dass es nach dem Stripe-Modul geladen wird.
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Vendor_StripeCustomizations" setup_version="1.0.0"> <sequence> <module name="StripeIntegration_Payments"/> </sequence> </module> </config>
Definieren Sie in etc/di.
das folgende Plugin:
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="StripeIntegration\Payments\Helper\PaymentMethod"> <plugin name="vendor_stripecustomizations_helper_paymentmethod_plugin" type="Vendor\StripeCustomizations\Plugin\Helper\PaymentMethodPlugin" sortOrder="10" disabled="false" /> </type> </config>
Erstellen Sie in Plugin/Helper/PaymentMethodPlugin.
einen afterMethod-Interceptor:
<?php namespace Vendor\Module\Plugin; class PaymentMethodPlugin { public function afterGetExternalPaymentMethods( \StripeIntegration\Payments\Helper\PaymentMethod $subject, array $result, $quote ): array { // Add custom payment method to the array $result[] = [ 'code' => 'external_payment_method_code', 'redirect_url' => "https://example.com/checkout?merchant=stripeintegration&amount=" . $quote->getGrandTotal() * 100 ]; return $result; } }
Aktivieren Sie das Modul:
php bin/magento module:enable Vendor_StripeCustomizations php bin/magento setup:upgrade php bin/magento cache:clean php bin/magento cache:flush