Ajouter des moyens de paiement externes au formulaire de paiement
Affichez des moyens de paiement hors Stripe dans le composant PaymentElement.
Le PaymentElement Stripe peut afficher un certain nombre de moyens de paiement externes. Nous définissons un moyen de paiement externe comme un moyen qui n’est pas intégré à votre Dashboard Stripe. Au lieu de cela, vous redirigez votre client vers une URL externe pour l’encaissement du paiement. Toutes les transactions ont lieu en dehors de Stripe, sans que l’on connaisse leur montant, leur devise, leur état, etc. Ces paiements n’apparaissent nulle part dans votre Dashboard Stripe. Stripe ne perçoit aucun frais de paiement lorsqu’une telle transaction a lieu.
Lorsque les paiements sont collectés en externe, aucun rapprochement ne se produit entre la commande Magento et le paiement externe. La commande reste en attente de paiement et ne contient pas d’informations sur l’état du paiement. Cela signifie que vous devez également mettre en œuvre un rapprochement.
Stripe ne fournit pas de directives sur la façon de rapprocher les paiements externes avec les commandes Magento. Pour mettre en œuvre le rapprochement, contactez le support du moyen de paiement externe pour obtenir ses guides d’intégration spécifiques.
Dans ce guide, nous décrivons uniquement la manière d’activer les moyens de paiement externes et de les afficher sur votre page de paiement. Lorsque le client clique sur le bouton Passer commande, il est redirigé vers une URL externe que vous indiquez pour le moyen de paiement externe.
Créer un nouveau module
Créez un nouveau module avec la structure de répertoire suivante. Remplacez Vendor
par le nom de votre fournisseur préféré.
app/code/Vendor/StripeCustomizations/ ├── etc/ │ ├── module.xml │ └── di.xml ├── Plugin/ │ └── Helper/ │ └── PaymentMethodPlugin.php ├── registration.php
Dans registration.
, enregistrez votre module auprès de Magento.
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Vendor_StripeCustomizations', __DIR__ );
Dans le fichier etc/module.
, définissez le module et configurez les dépendances pour vous assurer qu’il se charge après le module Stripe.
<?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>
Dans le fichier etc/di.
, définissez le plugin suivant :
<?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>
Dans Plugin/Helper/PaymentMethodPlugin.
, créez un intercepteur afterMethod :
<?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; } }
Activez le module :
php bin/magento module:enable Vendor_StripeCustomizations php bin/magento setup:upgrade php bin/magento cache:clean php bin/magento cache:flush